diff --git a/archives.html b/archives.html index 5875402..fc07648 100644 --- a/archives.html +++ b/archives.html @@ -1,6 +1,6 @@ - Блог 529 Блог 529 - Archives

Archives for Блог 529

Пн 01 Октябрь 2018
Долгие сообщения в RabbitMQ
Пн 17 Июль 2017
Экспорт партий с Lichess
Вс 30 Октябрь 2016
Моё решение задачи 134
Пт 21 Октябрь 2016
Моё решение задачи 146
Пт 22 Июль 2016
Нахождение суммы k-ых степеней
Чт 17 Март 2016
Wallabag и реальная жизнь
Вс 10 Январь 2016
Как я шахматного бота писал
Вс 02 Август 2015
CrossGen v1.0
Пт 17 Июль 2015
Моё решение задачи 60
Пт 03 Июль 2015
Ещё одно вычисление выражений
Пт 17 Апрель 2015
Мой первый пост или зачем этот блог?
\ No newline at end of file + \ No newline at end of file diff --git a/archives.html.gz b/archives.html.gz index 4a12508..365554d 100644 Binary files a/archives.html.gz and b/archives.html.gz differ diff --git a/author/aleksei-lobanov.html b/author/aleksei-lobanov.html index 60acffe..24006b3 100644 --- a/author/aleksei-lobanov.html +++ b/author/aleksei-lobanov.html @@ -1,6 +1,6 @@ - Блог 529 - Алексей Лобанов Блог 529 - Алексей Лобанов
  1. Долгие сообщения в RabbitMQ

    Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это исправить.


  2. Экспорт партий с Lichess

    Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.


  3. Моё решение задачи 134

    Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)


  4. Моё решение задачи 146

    Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


  5. Моё решение задачи 146

    Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


  6. Нахождение суммы k-ых степеней

    Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?


  7. Нахождение суммы k-ых степеней

    Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?


  8. Wallabag и реальная жизнь

    Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.



  9. CrossGen v1.0

    Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


  10. Моё решение задачи 60

    Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


  11. Ещё одно вычисление выражений

    На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои силы.


Page 1 / 2

  • Wallabag и реальная жизнь

    Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


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

    Как я проверял шахматное приложение на “ботоустойчивость”.


  • CrossGen v1.0

    Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


  • Моё решение задачи 60

    Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


  • Page 1 / 2
    \ No newline at end of file + \ No newline at end of file diff --git a/author/aleksei-lobanov.html.gz b/author/aleksei-lobanov.html.gz index 8fb7d62..ba44cbb 100644 Binary files a/author/aleksei-lobanov.html.gz and b/author/aleksei-lobanov.html.gz differ diff --git a/author/aleksei-lobanov2.html b/author/aleksei-lobanov2.html index 6fee15e..cc842ce 100644 --- a/author/aleksei-lobanov2.html +++ b/author/aleksei-lobanov2.html @@ -1,6 +1,6 @@ - Блог 529 - Алексей Лобанов Блог 529 - Алексей Лобанов

    Page 2 / 2
    \ No newline at end of file + \ No newline at end of file diff --git a/author/aleksei-lobanov2.html.gz b/author/aleksei-lobanov2.html.gz index faad7d3..4d03675 100644 Binary files a/author/aleksei-lobanov2.html.gz and b/author/aleksei-lobanov2.html.gz differ diff --git a/authors.html b/authors.html index e197dfd..0c38a00 100644 --- a/authors.html +++ b/authors.html @@ -1,6 +1,6 @@ - Блог 529 - Authors Блог 529 - Authors

    Authors on Блог 529

    \ No newline at end of file + \ No newline at end of file diff --git a/authors.html.gz b/authors.html.gz index c1667a7..032b7d4 100644 Binary files a/authors.html.gz and b/authors.html.gz differ diff --git a/categories.html b/categories.html index 89193bf..e472353 100644 --- a/categories.html +++ b/categories.html @@ -1,6 +1,6 @@ - Блог 529 Блог 529 - Categories
    \ No newline at end of file + \ No newline at end of file diff --git a/categories.html.gz b/categories.html.gz index 98976ee..bb26685 100644 Binary files a/categories.html.gz and b/categories.html.gz differ diff --git a/category/misc.html b/category/misc.html index 1fd737c..c757bbe 100644 --- a/category/misc.html +++ b/category/misc.html @@ -1,6 +1,6 @@ - Блог 529 - misc Блог 529 - misc
    1. Нахождение суммы k-ых степеней

      Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?


    2. Wallabag и реальная жизнь

      Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.



    Page 1 / 1

  • Wallabag и реальная жизнь

    Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


  • Мой первый пост или зачем этот блог?

    Кратко о том, почему я сделал блог.


  • Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/category/misc.html.gz b/category/misc.html.gz index 14138c6..c318819 100644 Binary files a/category/misc.html.gz and b/category/misc.html.gz differ diff --git a/category/proekty.html b/category/proekty.html index bce5ecc..fefa324 100644 --- a/category/proekty.html +++ b/category/proekty.html @@ -1,6 +1,6 @@ - Блог 529 - Проекты Блог 529 - Проекты
    1. Экспорт партий с Lichess

      Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.



    2. CrossGen v1.0

      Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


    3. Ещё одно вычисление выражений

      На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои силы.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/category/proekty.html.gz b/category/proekty.html.gz index 6c92941..b0d4235 100644 Binary files a/category/proekty.html.gz and b/category/proekty.html.gz differ diff --git a/category/project-euler.html b/category/project-euler.html index 8c0cfb0..98a136b 100644 --- a/category/project-euler.html +++ b/category/project-euler.html @@ -1,6 +1,6 @@ - Блог 529 - Project Euler Блог 529 - Project Euler
    1. Моё решение задачи 134

      Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)


    2. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    3. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    4. Моё решение задачи 60

      Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


    Page 1 / 1

  • Моё решение задачи 60

    Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


  • Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/category/project-euler.html.gz b/category/project-euler.html.gz index ddb807e..8be5024 100644 Binary files a/category/project-euler.html.gz and b/category/project-euler.html.gz differ diff --git a/category/python.html b/category/python.html index d45acc8..c2da7fd 100644 --- a/category/python.html +++ b/category/python.html @@ -1,6 +1,6 @@ - Блог 529 - Python Блог 529 - Python
    1. Долгие сообщения в RabbitMQ

      Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это исправить.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/category/python.html.gz b/category/python.html.gz index d16938c..5097461 100644 Binary files a/category/python.html.gz and b/category/python.html.gz differ diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml index c38b559..dd033fa 100644 --- a/feeds/all.atom.xml +++ b/feeds/all.atom.xml @@ -1,5 +1,5 @@ -Блог 529https://likemath.ru/2018-10-02T01:40:00+03:00Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529https://likemath.ru/2020-11-01T13:35:00+03:00Project Euler и остальноеКак я делаю бэкапы почты2020-11-01T13:35:00+03:002020-11-01T13:35:00+03:00Алексей Лобановtag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p>Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> @@ -69,11 +76,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -87,6 +97,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -107,6 +119,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> @@ -124,11 +138,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -142,6 +159,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -162,6 +181,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (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> \ 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> \ No newline at end of file diff --git a/feeds/all.atom.xml.gz b/feeds/all.atom.xml.gz index de52d50..26a96e3 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 44e4ecd..55aa136 100644 --- a/feeds/all.rss.xml +++ b/feeds/all.rss.xml @@ -1,5 +1,5 @@ -Блог 529https://likemath.ru/Project Euler и остальноеTue, 02 Oct 2018 01:40:00 +0300Долгие сообщения в RabbitMQhttps://likemath.ru/posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Алексей ЛобановTue, 02 Oct 2018 01:40:00 +0300tag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/PythonRabbitMQЭкспорт партий с Lichesshttps://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134https://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529https://likemath.ru/Project Euler и остальноеSun, 01 Nov 2020 13:35:00 +0300Как я делаю бэкапы почтыhttps://likemath.ru/posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p>Алексей ЛобановSun, 01 Nov 2020 13:35:00 +0300tag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/PythonбэкапыпроектДолгие сообщения в RabbitMQhttps://likemath.ru/posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Алексей ЛобановTue, 02 Oct 2018 01:40:00 +0300tag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/PythonRabbitMQЭкспорт партий с Lichesshttps://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134https://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Алексей ЛобановSun, 30 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/Project EulerPythonsympyМоё решение задачи 146https://likemath.ru/posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> @@ -69,11 +76,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -87,6 +97,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -107,6 +119,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Алексей ЛобановFri, 21 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/Project Eulerc++FLINTНахождение суммы k-ых степенейhttps://likemath.ru/posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> @@ -124,11 +138,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -142,6 +159,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -162,6 +181,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (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 и реальная жизньhttps://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Как я шахматного бота писалhttps://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.0https://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Моё решение задачи 60https://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Ещё одно вычисление выраженийhttps://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/проект \ 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 и реальная жизньhttps://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Как я шахматного бота писалhttps://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.0https://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Моё решение задачи 60https://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 \ No newline at end of file diff --git a/feeds/all.rss.xml.gz b/feeds/all.rss.xml.gz index a36a8de..19d908d 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 fb929ed..c4609bd 100644 --- a/feeds/feed.atom.xml +++ b/feeds/feed.atom.xml @@ -1,5 +1,5 @@ -Блог 529https://likemath.ru/2018-10-02T01:40:00+03:00Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529https://likemath.ru/2020-11-01T13:35:00+03:00Project Euler и остальноеКак я делаю бэкапы почты2020-11-01T13:35:00+03:002020-11-01T13:35:00+03:00Алексей Лобановtag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p>Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> @@ -69,11 +76,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -87,6 +97,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -107,6 +119,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> @@ -124,11 +138,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -142,6 +159,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -162,6 +181,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (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> \ 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> \ No newline at end of file diff --git a/feeds/feed.atom.xml.gz b/feeds/feed.atom.xml.gz index 5ed13fa..83f15f6 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 44e4ecd..55aa136 100644 --- a/feeds/feed.rss.xml +++ b/feeds/feed.rss.xml @@ -1,5 +1,5 @@ -Блог 529https://likemath.ru/Project Euler и остальноеTue, 02 Oct 2018 01:40:00 +0300Долгие сообщения в RabbitMQhttps://likemath.ru/posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Алексей ЛобановTue, 02 Oct 2018 01:40:00 +0300tag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/PythonRabbitMQЭкспорт партий с Lichesshttps://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134https://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529https://likemath.ru/Project Euler и остальноеSun, 01 Nov 2020 13:35:00 +0300Как я делаю бэкапы почтыhttps://likemath.ru/posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p>Алексей ЛобановSun, 01 Nov 2020 13:35:00 +0300tag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/PythonбэкапыпроектДолгие сообщения в RabbitMQhttps://likemath.ru/posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Алексей ЛобановTue, 02 Oct 2018 01:40:00 +0300tag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/PythonRabbitMQЭкспорт партий с Lichesshttps://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134https://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Алексей ЛобановSun, 30 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/Project EulerPythonsympyМоё решение задачи 146https://likemath.ru/posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> @@ -69,11 +76,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -87,6 +97,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -107,6 +119,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Алексей ЛобановFri, 21 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/Project Eulerc++FLINTНахождение суммы k-ых степенейhttps://likemath.ru/posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> @@ -124,11 +138,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -142,6 +159,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -162,6 +181,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (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 и реальная жизньhttps://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Как я шахматного бота писалhttps://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.0https://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Моё решение задачи 60https://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Ещё одно вычисление выраженийhttps://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/проект \ 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 и реальная жизньhttps://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Как я шахматного бота писалhttps://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.0https://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Моё решение задачи 60https://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 \ No newline at end of file diff --git a/feeds/feed.rss.xml.gz b/feeds/feed.rss.xml.gz index a36a8de..19d908d 100644 Binary files a/feeds/feed.rss.xml.gz and b/feeds/feed.rss.xml.gz differ diff --git a/feeds/misc.atom.xml b/feeds/misc.atom.xml index c3b1976..1b59eb7 100644 --- a/feeds/misc.atom.xml +++ b/feeds/misc.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - mischttps://likemath.ru/2016-07-22T13:35:00+03:00Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +Блог 529 - mischttps://likemath.ru/2016-07-22T13:35:00+03:00Project Euler и остальноеНахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (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>Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/misc.atom.xml.gz b/feeds/misc.atom.xml.gz index 1670ddd..2ea3887 100644 Binary files a/feeds/misc.atom.xml.gz and b/feeds/misc.atom.xml.gz differ diff --git a/feeds/proekty.atom.xml b/feeds/proekty.atom.xml index a25c2dc..7f1f9d5 100644 --- a/feeds/proekty.atom.xml +++ b/feeds/proekty.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - Проектыhttps://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&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>Ещё одно вычисление выражений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 +Блог 529 - Проектыhttps://likemath.ru/2020-11-01T13:35:00+03:00Project Euler и остальноеКак я делаю бэкапы почты2020-11-01T13:35:00+03:002020-11-01T13:35:00+03:00Алексей Лобановtag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p>Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&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>Ещё одно вычисление выражений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 04a2923..722903d 100644 Binary files a/feeds/proekty.atom.xml.gz and b/feeds/proekty.atom.xml.gz differ diff --git a/feeds/project-euler.atom.xml b/feeds/project-euler.atom.xml index 510fe45..3bd5af2 100644 --- a/feeds/project-euler.atom.xml +++ b/feeds/project-euler.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - Project Eulerhttps://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529 - Project Eulerhttps://likemath.ru/2016-10-30T17:40:00+03:00Project Euler и остальноеМоё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> @@ -69,11 +76,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -87,6 +97,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -107,6 +119,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Моё решение задачи 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> \ No newline at end of file diff --git a/feeds/project-euler.atom.xml.gz b/feeds/project-euler.atom.xml.gz index 82ed016..28b6c61 100644 Binary files a/feeds/project-euler.atom.xml.gz and b/feeds/project-euler.atom.xml.gz differ diff --git a/feeds/python.atom.xml b/feeds/python.atom.xml index ac12498..9f52e0a 100644 --- a/feeds/python.atom.xml +++ b/feeds/python.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - Pythonhttps://likemath.ru/2018-10-02T01:40:00+03:00Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p> \ No newline at end of file +Блог 529 - Pythonhttps://likemath.ru/2018-10-02T01:40:00+03:00Project Euler и остальноеДолгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p> \ No newline at end of file diff --git a/feeds/python.atom.xml.gz b/feeds/python.atom.xml.gz index 02e1118..f797f80 100644 Binary files a/feeds/python.atom.xml.gz and b/feeds/python.atom.xml.gz differ diff --git a/feeds/tag-bekapy.atom.xml b/feeds/tag-bekapy.atom.xml new file mode 100644 index 0000000..5f90216 --- /dev/null +++ b/feeds/tag-bekapy.atom.xml @@ -0,0 +1,2 @@ + +Блог 529 - бэкапыhttps://likemath.ru/2020-11-01T13:35:00+03:00Project Euler и остальноеКак я делаю бэкапы почты2020-11-01T13:35:00+03:002020-11-01T13:35:00+03:00Алексей Лобановtag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p> \ No newline at end of file diff --git a/feeds/tag-bekapy.atom.xml.gz b/feeds/tag-bekapy.atom.xml.gz new file mode 100644 index 0000000..b83f716 Binary files /dev/null and b/feeds/tag-bekapy.atom.xml.gz differ diff --git a/feeds/tag-bgl.atom.xml b/feeds/tag-bgl.atom.xml index 66dd279..4d44c18 100644 --- a/feeds/tag-bgl.atom.xml +++ b/feeds/tag-bgl.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - BGLhttps://likemath.ru/2015-11-22T23:41:00+03:00Моё решение задачи 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> \ No newline at end of file +Блог 529 - BGLhttps://likemath.ru/2015-11-22T23:41:00+03:00Project Euler и остальноеМоё решение задачи 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> \ No newline at end of file diff --git a/feeds/tag-bgl.atom.xml.gz b/feeds/tag-bgl.atom.xml.gz index ee9cd2c..443bed0 100644 Binary files a/feeds/tag-bgl.atom.xml.gz and b/feeds/tag-bgl.atom.xml.gz differ diff --git a/feeds/tag-blog.atom.xml b/feeds/tag-blog.atom.xml index f6e4224..27e8b7c 100644 --- a/feeds/tag-blog.atom.xml +++ b/feeds/tag-blog.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - блогhttps://likemath.ru/2015-04-17T13:35:00+03:00Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +Блог 529 - блогhttps://likemath.ru/2015-04-17T13:35:00+03:00Project Euler и остальноеМой первый пост или зачем этот блог?2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/tag-blog.atom.xml.gz b/feeds/tag-blog.atom.xml.gz index 1de1fc9..3380a43 100644 Binary files a/feeds/tag-blog.atom.xml.gz and b/feeds/tag-blog.atom.xml.gz differ diff --git a/feeds/tag-bot.atom.xml b/feeds/tag-bot.atom.xml index b56d52e..5dd95be 100644 --- a/feeds/tag-bot.atom.xml +++ b/feeds/tag-bot.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - ботhttps://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 +Блог 529 - ботhttps://likemath.ru/2016-01-10T13:35:00+03:00Project Euler и остальноеКак я шахматного бота писал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 5ab35ef..670c568 100644 Binary files a/feeds/tag-bot.atom.xml.gz and b/feeds/tag-bot.atom.xml.gz differ diff --git a/feeds/tag-c.atom.xml b/feeds/tag-c.atom.xml index 125e6c6..0e0e68d 100644 --- a/feeds/tag-c.atom.xml +++ b/feeds/tag-c.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - c++https://likemath.ru/2016-10-21T17:40:00+03:00Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +Блог 529 - c++https://likemath.ru/2016-10-21T17:40:00+03:00Project Euler и остальноеМоё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>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> \ No newline at end of file diff --git a/feeds/tag-c.atom.xml.gz b/feeds/tag-c.atom.xml.gz index 99c047d..f882f82 100644 Binary files a/feeds/tag-c.atom.xml.gz and b/feeds/tag-c.atom.xml.gz differ diff --git a/feeds/tag-flint.atom.xml b/feeds/tag-flint.atom.xml index c0f9e12..7cff158 100644 --- a/feeds/tag-flint.atom.xml +++ b/feeds/tag-flint.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - FLINThttps://likemath.ru/2016-10-21T17:40:00+03:00Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +Блог 529 - FLINThttps://likemath.ru/2016-10-21T17:40:00+03:00Project Euler и остальноеМоё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script> \ No newline at end of file diff --git a/feeds/tag-flint.atom.xml.gz b/feeds/tag-flint.atom.xml.gz index bad96c7..8e31e52 100644 Binary files a/feeds/tag-flint.atom.xml.gz and b/feeds/tag-flint.atom.xml.gz differ diff --git a/feeds/tag-go.atom.xml b/feeds/tag-go.atom.xml index 55b171e..444de4d 100644 --- a/feeds/tag-go.atom.xml +++ b/feeds/tag-go.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - Gohttps://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь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> \ No newline at end of file +Блог 529 - Gohttps://likemath.ru/2016-03-17T13:35:00+03:00Project Euler и остальное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> \ No newline at end of file diff --git a/feeds/tag-go.atom.xml.gz b/feeds/tag-go.atom.xml.gz index 7c6c0f2..596c3ad 100644 Binary files a/feeds/tag-go.atom.xml.gz and b/feeds/tag-go.atom.xml.gz differ diff --git a/feeds/tag-lichess.atom.xml b/feeds/tag-lichess.atom.xml index 7ed8460..7273b10 100644 --- a/feeds/tag-lichess.atom.xml +++ b/feeds/tag-lichess.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - lichesshttps://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p> \ No newline at end of file +Блог 529 - lichesshttps://likemath.ru/2017-07-17T13:35:00+03:00Project Euler и остальноеЭкспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p> \ No newline at end of file diff --git a/feeds/tag-lichess.atom.xml.gz b/feeds/tag-lichess.atom.xml.gz index 5837820..0b8a551 100644 Binary files a/feeds/tag-lichess.atom.xml.gz and b/feeds/tag-lichess.atom.xml.gz differ diff --git a/feeds/tag-matematika.atom.xml b/feeds/tag-matematika.atom.xml index 3b14ec3..b6c7d3c 100644 --- a/feeds/tag-matematika.atom.xml +++ b/feeds/tag-matematika.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - математикаhttps://likemath.ru/2016-07-22T13:35:00+03:00Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +Блог 529 - математикаhttps://likemath.ru/2016-07-22T13:35:00+03:00Project Euler и остальноеНахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script> \ No newline at end of file diff --git a/feeds/tag-matematika.atom.xml.gz b/feeds/tag-matematika.atom.xml.gz index bc7bde3..9b4429a 100644 Binary files a/feeds/tag-matematika.atom.xml.gz and b/feeds/tag-matematika.atom.xml.gz differ diff --git a/feeds/tag-open-source.atom.xml b/feeds/tag-open-source.atom.xml index 31b2b7d..cf049fc 100644 --- a/feeds/tag-open-source.atom.xml +++ b/feeds/tag-open-source.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - open sourcehttps://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь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> \ No newline at end of file +Блог 529 - open sourcehttps://likemath.ru/2016-03-17T13:35:00+03:00Project Euler и остальное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> \ No newline at end of file diff --git a/feeds/tag-open-source.atom.xml.gz b/feeds/tag-open-source.atom.xml.gz index 5fed290..6ceafba 100644 Binary files a/feeds/tag-open-source.atom.xml.gz and b/feeds/tag-open-source.atom.xml.gz differ diff --git a/feeds/tag-proekt.atom.xml b/feeds/tag-proekt.atom.xml index 2091ed3..332e181 100644 --- a/feeds/tag-proekt.atom.xml +++ b/feeds/tag-proekt.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - проектhttps://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&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>Ещё одно вычисление выражений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 +Блог 529 - проектhttps://likemath.ru/2020-11-01T13:35:00+03:00Project Euler и остальноеКак я делаю бэкапы почты2020-11-01T13:35:00+03:002020-11-01T13:35:00+03:00Алексей Лобановtag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p>Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&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>Ещё одно вычисление выражений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 fc0e035..82f0307 100644 Binary files a/feeds/tag-proekt.atom.xml.gz and b/feeds/tag-proekt.atom.xml.gz differ diff --git a/feeds/tag-project-euler.atom.xml b/feeds/tag-project-euler.atom.xml index 8e93cd8..a0e36ad 100644 --- a/feeds/tag-project-euler.atom.xml +++ b/feeds/tag-project-euler.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - Project Eulerhttps://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529 - Project Eulerhttps://likemath.ru/2016-10-30T17:40:00+03:00Project Euler и остальноеМоё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> @@ -69,11 +76,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -87,6 +97,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -107,6 +119,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script>Моё решение задачи 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> \ No newline at end of file diff --git a/feeds/tag-project-euler.atom.xml.gz b/feeds/tag-project-euler.atom.xml.gz index 6f54d59..92611ae 100644 Binary files a/feeds/tag-project-euler.atom.xml.gz and b/feeds/tag-project-euler.atom.xml.gz differ diff --git a/feeds/tag-python.atom.xml b/feeds/tag-python.atom.xml index 3416b0c..b7f1d20 100644 --- a/feeds/tag-python.atom.xml +++ b/feeds/tag-python.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - Pythonhttps://likemath.ru/2018-10-02T01:40:00+03:00Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529 - Pythonhttps://likemath.ru/2020-11-01T13:35:00+03:00Project Euler и остальноеКак я делаю бэкапы почты2020-11-01T13:35:00+03:002020-11-01T13:35:00+03:00Алексей Лобановtag:likemath.ru,2020-11-01:posts/kak-ia-delaiu-bekapy-pochty/<p>Решение, которое я сейчас исользую для бэкапа своей&nbsp;почты</p>Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script> \ No newline at end of file diff --git a/feeds/tag-python.atom.xml.gz b/feeds/tag-python.atom.xml.gz index 3e2e1f4..51ac488 100644 Binary files a/feeds/tag-python.atom.xml.gz and b/feeds/tag-python.atom.xml.gz differ diff --git a/feeds/tag-rabbitmq.atom.xml b/feeds/tag-rabbitmq.atom.xml index 4b8d2b4..feb5146 100644 --- a/feeds/tag-rabbitmq.atom.xml +++ b/feeds/tag-rabbitmq.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - RabbitMQhttps://likemath.ru/2018-10-02T01:40:00+03:00Долгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p> \ No newline at end of file +Блог 529 - RabbitMQhttps://likemath.ru/2018-10-02T01:40:00+03:00Project Euler и остальноеДолгие сообщения в RabbitMQ2018-10-02T01:40:00+03:002018-10-02T01:40:00+03:00Алексей Лобановtag:likemath.ru,2018-10-01:posts/dolgie-soobshcheniia-v-rabbitmq/<p>Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это&nbsp;исправить.</p> \ No newline at end of file diff --git a/feeds/tag-rabbitmq.atom.xml.gz b/feeds/tag-rabbitmq.atom.xml.gz index 76e33cc..3398f88 100644 Binary files a/feeds/tag-rabbitmq.atom.xml.gz and b/feeds/tag-rabbitmq.atom.xml.gz differ diff --git a/feeds/tag-shakhmaty.atom.xml b/feeds/tag-shakhmaty.atom.xml index 4596b28..ee2aef5 100644 --- a/feeds/tag-shakhmaty.atom.xml +++ b/feeds/tag-shakhmaty.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - шахматыhttps://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&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> \ No newline at end of file +Блог 529 - шахматыhttps://likemath.ru/2017-07-17T13:35:00+03:00Project Euler и остальноеЭкспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&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> \ No newline at end of file diff --git a/feeds/tag-shakhmaty.atom.xml.gz b/feeds/tag-shakhmaty.atom.xml.gz index db429ba..ec55c3d 100644 Binary files a/feeds/tag-shakhmaty.atom.xml.gz and b/feeds/tag-shakhmaty.atom.xml.gz differ diff --git a/feeds/tag-sympy.atom.xml b/feeds/tag-sympy.atom.xml index ae0d38e..3d6338b 100644 --- a/feeds/tag-sympy.atom.xml +++ b/feeds/tag-sympy.atom.xml @@ -1,5 +1,5 @@ -Блог 529 - sympyhttps://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529 - sympyhttps://likemath.ru/2016-10-30T17:40:00+03:00Project Euler и остальноеМоё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -14,11 +14,14 @@ var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; mathjaxscript.type = 'text/javascript'; - mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - mathjaxscript[(window.opera ? "innerHTML" : "text")] = + mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML'; + + var configscript = document.createElement('script'); + configscript.type = 'text/x-mathjax-config'; + configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + - " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + @@ -32,6 +35,8 @@ " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + + " availableFonts: ['STIX', 'TeX']," + + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + @@ -52,6 +57,8 @@ "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; + + (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript); (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } </script> \ No newline at end of file diff --git a/feeds/tag-sympy.atom.xml.gz b/feeds/tag-sympy.atom.xml.gz index 161174c..9c592d4 100644 Binary files a/feeds/tag-sympy.atom.xml.gz and b/feeds/tag-sympy.atom.xml.gz differ diff --git a/feeds/tag-wallabag.atom.xml b/feeds/tag-wallabag.atom.xml index e927cbc..60f7e0b 100644 --- a/feeds/tag-wallabag.atom.xml +++ b/feeds/tag-wallabag.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - wallabaghttps://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь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> \ No newline at end of file +Блог 529 - wallabaghttps://likemath.ru/2016-03-17T13:35:00+03:00Project Euler и остальное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> \ No newline at end of file diff --git a/feeds/tag-wallabag.atom.xml.gz b/feeds/tag-wallabag.atom.xml.gz index 30180a2..fd0a8e5 100644 Binary files a/feeds/tag-wallabag.atom.xml.gz and b/feeds/tag-wallabag.atom.xml.gz differ diff --git a/feeds/tag-wxwidgets.atom.xml b/feeds/tag-wxwidgets.atom.xml index 1680626..a0c5866 100644 --- a/feeds/tag-wxwidgets.atom.xml +++ b/feeds/tag-wxwidgets.atom.xml @@ -1,2 +1,2 @@ -Блог 529 - wxWidgetshttps://likemath.ru/2015-08-04T17:40:00+03:00CrossGen 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> \ No newline at end of file +Блог 529 - wxWidgetshttps://likemath.ru/2015-08-04T17:40:00+03:00Project Euler и остальное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> \ No newline at end of file diff --git a/feeds/tag-wxwidgets.atom.xml.gz b/feeds/tag-wxwidgets.atom.xml.gz index 03413d5..a94944f 100644 Binary files a/feeds/tag-wxwidgets.atom.xml.gz and b/feeds/tag-wxwidgets.atom.xml.gz differ diff --git a/images/avatar_1x1_1280.jpg b/images/avatar_1x1_1280.jpg index e8d43c0..967cb97 100644 Binary files a/images/avatar_1x1_1280.jpg and b/images/avatar_1x1_1280.jpg differ diff --git a/images/chessbot_msg1.png b/images/chessbot_msg1.png index 70fb0b7..473217e 100644 Binary files a/images/chessbot_msg1.png and b/images/chessbot_msg1.png differ diff --git a/images/crossgen_lin_1_0.png b/images/crossgen_lin_1_0.png index 7459476..58133e1 100644 Binary files a/images/crossgen_lin_1_0.png and b/images/crossgen_lin_1_0.png differ diff --git a/images/crossgen_win7_1_0.png b/images/crossgen_win7_1_0.png index d1c9eae..322d681 100644 Binary files a/images/crossgen_win7_1_0.png and b/images/crossgen_win7_1_0.png differ diff --git a/index.html b/index.html index ad1f420..6eac33d 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ - Блог 529 Блог 529
    1. Долгие сообщения в RabbitMQ

      Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это исправить.


    2. Экспорт партий с Lichess

      Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.


    3. Моё решение задачи 134

      Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)


    4. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    5. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    6. Нахождение суммы k-ых степеней

      Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?


    7. Нахождение суммы k-ых степеней

      Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?


    8. Wallabag и реальная жизнь

      Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.



    9. CrossGen v1.0

      Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


    10. Моё решение задачи 60

      Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


    11. Ещё одно вычисление выражений

      На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои силы.


    Page 1 / 2

  • Wallabag и реальная жизнь

    Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.



  • CrossGen v1.0

    Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


  • Моё решение задачи 60

    Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


  • Page 1 / 2
    \ No newline at end of file + \ No newline at end of file diff --git a/index.html.gz b/index.html.gz index d1577fc..ff2d00f 100644 Binary files a/index.html.gz and b/index.html.gz differ diff --git a/index2.html b/index2.html index 2a11213..4b34753 100644 --- a/index2.html +++ b/index2.html @@ -1,6 +1,6 @@ - Блог 529 Блог 529

    Page 2 / 2
    \ No newline at end of file + \ No newline at end of file diff --git a/index2.html.gz b/index2.html.gz index 1f2dc0d..e265fc8 100644 Binary files a/index2.html.gz and b/index2.html.gz differ diff --git a/pages/about.html b/pages/about.html index 4da7a05..9a9b3fe 100644 --- a/pages/about.html +++ b/pages/about.html @@ -1,6 +1,6 @@ - Блог 529 Блог 529

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

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

    Умею писать:

    1. Бекенды на Python (+flask)
    2. Фронтенды на jQuery
    3. Парсеры на scrapy
    4. Кроссплатформенные приложения на C++/Python с использованием wxWidgets
    5. И интегрировать во всё это машинное обучение на scikit-learn, xgboost и TensorFlow.

    Если вы хотите связаться со мной и обсудить что-нибудь, то можете выбрать удобный способ связи:


    \ No newline at end of file + \ No newline at end of file diff --git a/pages/about.html.gz b/pages/about.html.gz index e794f99..1749c58 100644 Binary files a/pages/about.html.gz and b/pages/about.html.gz differ diff --git a/pages/projects.html b/pages/projects.html index ec90920..4f49b08 100644 --- a/pages/projects.html +++ b/pages/projects.html @@ -1,6 +1,6 @@ - Мои проекты Мои проекты
    1. Мои проекты

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

      CrossGen

      alt text

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

      1. C++
      2. wxWidgets

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

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

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


    \ No newline at end of file + \ No newline at end of file diff --git a/posts/crossgen-v10/index.html b/posts/crossgen-v10/index.html index 59dd3ab..6557418 100644 --- a/posts/crossgen-v10/index.html +++ b/posts/crossgen-v10/index.html @@ -1,6 +1,6 @@ - CrossGen v1.0 CrossGen v1.0
    1. CrossGen v1.0

      Начать, наверное, нужно с того, что реальную практическую значимость я осознал после того, как реализовал 90% того, что есть сейчас. Сейчас мне кажется, что единственное применение данного приложения лишь в том, чтобы создавать кроссворды очень сложной или необычной формы. Зачем это надо обычному человеку я вообще не знаю.

      Собственно, алгоритм генерации изначально был примитивным: простой рекурсивный поиск с отсечением. Скорость генерации более-менее сложных сеток была ужасной (для перцентиля 30% это примерно 40 минут на этой сетке, в общем случае, время генерации непредсказуемо.

      В дальнейшем были выполнены некоторые оптимизации. Первой более-менее значимой стала замена передачи сетки в юникоде (во внутреннем цикле) на передачу сетки в однобайтовой кодировке, таким образом, языки с алфавитом больше ~200 букв пролетают. Впрочем, мне кажется, что им не слишком сильно требуются кроссворды. Такая оптимизация дала ~35% прироста при значимом времени перебора (больше секунды).

      В какой-то момент, мне показалось, что оптимизация структуры данных для хранения сетки тоже могла сильно увеличить производительность, но это будет заметно только на разряженных сетках, которые и так достаточно быстро генерируются. На сложных же плотных сетках, прирост скорости может быть минимальным, вплоть до отрицательного. Таким образом, используются просто двумерный массив.

      Наибольший прирост, как и ожидалось, дало упорядочивание словаря по некоторому критерию. Таким образом, при переборе, “плохие” варианты будут попадаться редко. На это ушло немногим больше дня. В конечном итоге, целевой функцией, которая стала критерием сортировки, стала такая \(\sqrt[n]{\prod_{i=1}^{n}{f\left( a_i \right)}}\) (иначе говоря, среднее геометрическое отлично подошло), где \(n\) — количество букв в слове, \(a_i\) — буквы слова, а \(f \left( x \right)\) есть вероятность появления буквы \(x\). Я отсекаю примерно половину самых “плохих” слов, а из того, что осталось я составляю кроссворд. Производительность, в среднем, увеличилась в ~1000 раз. На тестовых сетках для перцентиля 90% длительность работы около секунды.

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

      • Прозрачная интернационализация (пока только русский и английский языки)
      • Быстрая генерация
      • Экспорт в текстовом формате
      • Простая смена словаря
      • Относительно простое редактирование сеток

      Что может быть реализовано

      • Визуальный редактор сетки
      • Экспорт в HTML, PDF, Markdown
      • Экспорт сетки в файл картинки

      Скриншоты

      • Версия для Xubuntu: alt text
      • Версия для Windows 7: alt text




    \ No newline at end of file + \ No newline at end of file diff --git a/posts/crossgen-v10/index.html.gz b/posts/crossgen-v10/index.html.gz index 66f53cd..86cd1fb 100644 Binary files a/posts/crossgen-v10/index.html.gz and b/posts/crossgen-v10/index.html.gz differ diff --git a/posts/dolgie-soobshcheniia-v-rabbitmq/index.html b/posts/dolgie-soobshcheniia-v-rabbitmq/index.html index 2d98fb4..783faae 100644 --- a/posts/dolgie-soobshcheniia-v-rabbitmq/index.html +++ b/posts/dolgie-soobshcheniia-v-rabbitmq/index.html @@ -1,138 +1,138 @@ - Долгие сообщения в RabbitMQ Долгие сообщения в RabbitMQ
    1. Долгие сообщения в RabbitMQ

      Предположим, что у вас появилось желание перекодировать фильмы на вашем медиасервере, и вы решили использовать production-ready решение для хранения заданий. Вы взяли RabbitMQ для управления очередями сообщений и Python для их обработки. Но почему-то сообщения обрабатываются нестабильно, клиент падает без всяких видимых причин. Попробуем понять почему такое может быть.

      Возьмём готовый код из официального туториала RabbitMQ и немного его модифицируем, чтобы он обрабатывал сообщения за различное время.

      Producer

      #!/usr/bin/python
      -# -*- coding: utf-8 -*-
      -
      -__author__ = "Aleksey Lobanov"
      -__license__ = "MIT"
      -
      -import sys
      -
      -import pika
      -
      -if __name__ == "__main__":
      -    connection = pika.BlockingConnection(
      -        pika.ConnectionParameters(host='localhost')
      -    )
      -    channel = connection.channel()
      -
      -
      -    channel.queue_declare(queue='demo.hello')
      -
      -    # чтение первого аргумента командной строки, если он есть
      -    if len(sys.argv) > 1:
      -        delay_to_send = int(sys.argv[1])
      -    else:
      -        delay_to_send = 3
      -    channel.basic_publish(
      -        exchange='',
      -        routing_key='demo.hello',
      -        body=str(delay_to_send)
      -    )
      -    print(" [x] Sent " + str(delay_to_send))
      -    connection.close()
      -

      Consumer

      #!/usr/bin/python
      -# -*- coding: utf-8 -*-
      -
      -__author__ = "Aleksey Lobanov"
      -__license__ = "MIT"
      -
      -import sys
      -import time
      -import math
      -
      -import pika
      -
      -
      -def callback(ch, method, properties, body):
      -    print(" [x] Received %r" % body)
      -    delay = int(body)
      -    begin_at = time.time()
      -    time.sleep(delay)
      -    print(" [x] Finished {}".format(body))
      -
      -
      -if __name__ == "__main__":
      -    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
      -    channel = connection.channel()
      -
      -    channel.queue_declare(queue='demo.hello')
      -
      -    channel.basic_consume(
      -        callback,
      -        queue='demo.hello',
      -        no_ack=True
      -    )
      -
      -    print(' [*] Waiting for messages. To exit press CTRL+C')
      -    channel.start_consuming()
      -

      Пока мы посылаем маленькие числа, всё будет хорошо работать. Но если послать какое-то большое (в моём случае достаточно 200), то consumer потеряет соединение с сервером, будет ошибка. Скорее всего это будет pika.exceptions.ConnectionClosed: (-1, 'EOF') или Socket Error 104 (тут есть обсуждение на GitHub библиотеки, но установка prefetch_count=1 тоже не поможет). Эта проблема актуальна для обоих веток Python.

      Реальная причина в том, что при обработке сообщения не происходит необходимого взаимодействия с RabbitMQ, не отправляются hearbeats, а без них сервер считает, что этот клиент погиб окончательно. Нужно отметить, что переход на другой тип соединения не помогает. Например использование примера на Twisted из официальной документации ничего не изменит.

      У этой проблемы есть много решений. Будем считать, что сообщение, которое мы обрабатываем не разделяется на подзадачи и рассмотрим некоторые из них:

      1. Отключить hearbeats/увеличить их интервал так, чтобы самprefetch_countая долгая обработка сообщения вела к потере не более, чем одного. Это самое простое решение, но в таком случае мы теряем в надёжности. Внешнем сервисам мониторинга будет сложнее понять, обрабатываются ли сейчас сообщения или уже нет. И чем больше интервал, тем серьёзнее проблема. Не подходит
      2. Разбить обработку сообщения на несколько этапов. Часто это хорошее решение, но в предположении, что данная обработка не разбивается на более мелкие тоже не подходит.
      3. Использовать connection.sleep вместо time.sleep, а также регулярный вызов BlockingConnection.process_data_events. Оба эти решения помогают, но их использование плохо по многим причинам. Во-первых это явное протекании абстракции, когда код для обработки сообщения вынужден работать с очередью. Во-вторых не всегда можно гарантировать, что эти функции вызываются достаточно часто, а это главная проблема. Не подходит
      4. Выделить отдельный процесс под pika. Вероятно, единственно универсальное решение. Если исходный код был правильно написан, то адаптация будет простой. Но у этого решения есть минусы, обязательные при использовании нескольких потоков/процессов. Также сама библиотека pika не является потокобезопасной.

      Возможное решение будет заключаться в вынесение обработки данных в отдельный метод:

      def real_work(body):
      -    delay = int(body)
      -    begin_at = time.time()
      -    time.sleep(delay)
      -

      и небольшой доработке callback-метода:

      # Конструктор, при запуске процесс запустит
      -# функцию с указанными параметрами
      -work_process = multiprocessing.Process(
      -    target=real_work,
      -    args=(body, )
      -)
      -work_process.start()  # процесс нужно явно запустить
      -while True:
      -    ch.connection.sleep(1)
      -    # пока поток работает, используем функцию pika
      -    # для обработки необходимых сообщений
      -    if not work_process.is_alive():
      -        break
      -

      Тогда готовый код будет выглядеть так:

      #!/usr/bin/python
      -# -*- coding: utf-8 -*-
      -
      -__author__ = "Aleksey Lobanov"
      -__license__ = "MIT"
      -
      -import sys
      -import time
      -import math
      -import multiprocessing
      -
      -import pika
      -
      -
      -def real_work(body):
      -    delay = int(body)
      -    begin_at = time.time()
      -    time.sleep(delay)
      -
      -
      -def callback(ch, method, properties, body):
      -    print(" [x] Received %r" % body)
      -    work_process = multiprocessing.Process(
      -        target=real_work,
      -        args=(body, )
      -    )
      -    work_process.start()
      -    while True:
      -        ch.connection.sleep(1)
      -        if not work_process.is_alive():
      -            break
      -
      -    print(" [x] Finished " + body)
      -
      -
      -if __name__ == "__main__":
      -    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
      -    channel = connection.channel()
      -
      -    channel.queue_declare(queue='demo.hello')
      -
      -    channel.basic_consume(
      -        callback,
      -        queue='demo.hello',
      -        no_ack=True
      -    )
      -
      -    print(' [*] Waiting for messages. To exit press CTRL+C')
      -    channel.start_consuming()
      -


    \ No newline at end of file + \ No newline at end of file diff --git a/posts/dolgie-soobshcheniia-v-rabbitmq/index.html.gz b/posts/dolgie-soobshcheniia-v-rabbitmq/index.html.gz index 3d2fc20..553f25e 100644 Binary files a/posts/dolgie-soobshcheniia-v-rabbitmq/index.html.gz and b/posts/dolgie-soobshcheniia-v-rabbitmq/index.html.gz differ diff --git a/posts/eksport-partii-s-lichess/index.html b/posts/eksport-partii-s-lichess/index.html index ee4266d..7aa17a6 100644 --- a/posts/eksport-partii-s-lichess/index.html +++ b/posts/eksport-partii-s-lichess/index.html @@ -1,8 +1,8 @@ - Экспорт партий с Lichess Экспорт партий с Lichess
    1. Экспорт партий с Lichess

      Одну партию с Lichess скачать довольно просто, это можно сделать на странице с самой игрой. Скачать все игры тоже несложно, для этого есть специальный раздел.

      Если же хочется скачать свои партии, то я нашёл лишь одно решение. Последний коммит был сделан 2 года назад, также оно не учитывает ограничения API, и больше ~2000 партий, за раз скачать не получится.

      Моей целью было написание альтернативы, которая бы работала быстрее и работала корректно.

      Проблема формата решена довольно просто: API отдаёт PGN, значит его поддержка уже есть. Но это плохой формат для хранения и обработки. Поэтому нужно было выбрать что-то ещё.

      Существует, практически, только Scid, если вы хотите хранить свои шахматные партии, используя открытый софт. В его дистрибутиве уже есть необходимые утилиты для конвертации pgn в свой формат.

      Репозиторий здесь, а здесь можно скачать файлы сразу.

      Возможности

      1. Многопоточность
      2. Сохранение как в PGN, так и в формат Scid
      3. Для работы необходим только Python
      4. Работает при любом числе партий

      Установка

      pip install grequests
      -

      Запуск

      python lichess.py -n hippo23 -t pgn -o hippo23.pgn  --threads 6 
      -

      Здесь hippo23 мой ник, а pgn формат сохранения (доступен также scid).



    \ No newline at end of file + \ No newline at end of file diff --git a/posts/eksport-partii-s-lichess/index.html.gz b/posts/eksport-partii-s-lichess/index.html.gz index 8ce72b4..895917a 100644 Binary files a/posts/eksport-partii-s-lichess/index.html.gz and b/posts/eksport-partii-s-lichess/index.html.gz differ diff --git a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html index 4ecf794..fa3dcd9 100644 --- a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html +++ b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html @@ -1,6 +1,6 @@ - Ещё одно вычисление выражений Ещё одно вычисление выражений
    1. Ещё одно вычисление выражений

      Задачка кажется не очень сложной, даже, если не знать как её делать (я не знал). Целью является быстрое вычисление чего-то типа 4 * ( 5 + 7 ^ 4). Для это я парсил исходную строку в список токенов, а затем непосредственно вычислял, что получится.

      Я решил, что проще всего будет реализовать (а мне потом и понять) алгоритм, когда после каждого действия будет выполняться некий “хороший” инвариант. Первое что приходит в голову — это то, что истинность выражение после выполнения операции не меняется (TITO соблюдается). То есть выражение 3 + 5 можно заменить на 8 или хотя бы на 4 * 2.

      Непосредственно сама обработка является несколькими проходами, так что в каждом проходе мы избавляемся от операций одного приоритета. 4 + 5 * 3 заменяется на 4 + 15, 7 - 5 * 2^3 заменяется на 7 - 5*8. Таким образом, каждый цикл тривиален, и легко задавать приоритеты операций.

      Если использовать один список как контейнер для токенов и при работе изменять непосредственно его, сохраняя указанные инварианты, то сложность получается \(O\left( N \right)\), где \(N\) — число токенов.

      Времени на непосредственно кодирование ушло часа три-четыре, но в это время не входит продумывание мелких деталей.

      Всё написано на C++11. Исходники лежат на GitHub и BitBucket.





    \ No newline at end of file + \ No newline at end of file diff --git a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz index a7374af..fd378be 100644 Binary files a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz and b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz differ diff --git a/posts/kak-ia-delaiu-bekapy-pochty/index.html b/posts/kak-ia-delaiu-bekapy-pochty/index.html new file mode 100644 index 0000000..ac08934 --- /dev/null +++ b/posts/kak-ia-delaiu-bekapy-pochty/index.html @@ -0,0 +1,14 @@ + Как я делаю бэкапы почты
    1. Как я делаю бэкапы почты

      Люди делятся на две категории: кто еще не делает бэкапы, и кто их уже делает” (с)

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

      Мне кажется, что хорошее решение точно должно удовлетворять следующим требованиям:

      1. Дружественность file-based системам синхронизации: Dropbox, Яндекс.Диск и другие.
      2. Простота потенциального переноса данных на другое решение бэкапов. Не хочется сталкиваться с vendor lock-in в случае проблем.
      3. Бэкапы должны быть зашифрованы.
      4. Естественная поддержка нескольких почтовых ящиков.
      5. Хочется легко извлекать результаты простых запросов, например, “все письма с таким автором”, без сложных процедур импорта.

      До этого у меня на домашнем сервере был настроен бэкап по IMAP по каждому из аккаунтов. Хотелось получить какой-то более простой интерфейс к поиску, чем grep и не хранить лишнее.

      В итоге я пришёл к самописному решению, которое удовлетворяло всем требованиям, оставаясь компактным при этом. Схема работы такая:

      • Есть два места для сохранения результатов: небольшая sqlite база с метаданными и некоторое файловое хранилище (далее просто хранилище), которое может быть S3 корзиной, локальной директорией или чем-нибудь ещё. Хранилище используется только на запись, поэтому поверх него можно добавить GPG шифрование.
      • Сначала используется mail-parser для извлечения простых метаданных из данных письма.
      • По этим метаданным добавляем запись в sqlite базу с адресами участников, темой письма и временем. Этого достаточно для большинства простых запросов.
      • Извлекаем вложения, метаданные по ним сохраняем в sqlite, а сами файлы — в хранилище.
      • Сохраняем полные данные письма, кроме уже сохранённых вложений, в хранилище.

      Проще всего поддерживать сохранение объектов в локальную директорию, поэтому сейчас поддерживается только оно. Слой шифрования достаточно естественно добавляется ещё одним решением, gocryptfs reverse mode. Мой полный бэкап почты остаётся достаточно компактным, чтобы можно было не разделять метаданные и объекты. В таком случае процесс бэкапа целиком выглядит так:

      1. Получить mbox по всем аккаунтам
      2. Обработать mbox и сохранить новые объекты, добавить новые метаданные.
      3. Добавить слой шифрования с помощью reverse mode в gocryptfs.
      4. Сохранить на бэкап хранилища.

      Актуальная версия моего решения вместе с подробной информацией по использованию лежит на GitHub.



    \ No newline at end of file diff --git a/posts/kak-ia-delaiu-bekapy-pochty/index.html.gz b/posts/kak-ia-delaiu-bekapy-pochty/index.html.gz new file mode 100644 index 0000000..2484eb4 Binary files /dev/null and b/posts/kak-ia-delaiu-bekapy-pochty/index.html.gz differ diff --git a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html index c4ec3b8..5bc1e5f 100644 --- a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html +++ b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html @@ -1,6 +1,6 @@ - Как я шахматного бота писал Как я шахматного бота писал
    1. Как я шахматного бота писал

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

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

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

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

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

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

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

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

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

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

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



    \ No newline at end of file + \ No newline at end of file diff --git a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz index 1413ed1..6e4489d 100644 Binary files a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz and b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz differ diff --git a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html index 27ebafe..cf4ef73 100644 --- a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html +++ b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html @@ -1,6 +1,6 @@ - Мой первый пост или зачем этот блог? Мой первый пост или зачем этот блог?
    1. Мой первый пост или зачем этот блог?

      Есть несколько причин появления этого блога. Самая главная — хочется как-то использовать домен, который я купил изначально для красивой почты. Но она не единственная. Мне также хочется делиться частью того, что я делаю на платформе, которую я могу контролировать. Ну и контактные данные. Хорошо, когда все в одном месте.

      Пока я планирую публиковать свои, возможно не лучшие, но рабочие решения для задач из Project Euler (projecteuler.net). На самом деле, решения значительного числа задач уже есть в Сети, но на английском. Хотя, это и не есть большая проблема.



    \ No newline at end of file + \ No newline at end of file diff --git a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz index b4486ed..e9f25a9 100644 Binary files a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz and b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz differ diff --git a/posts/moio-reshenie-zadachi-134/index.html b/posts/moio-reshenie-zadachi-134/index.html index 76cf836..9e7c267 100644 --- a/posts/moio-reshenie-zadachi-134/index.html +++ b/posts/moio-reshenie-zadachi-134/index.html @@ -1,29 +1,29 @@ - Моё решение задачи 134 Моё решение задачи 134
    1. Моё решение задачи 134

      Назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

      Например, если \(p_1 = 19\), то следующее простое \(p_2 = 23\). Тогда порождающим будет число \(1219\), при этом \(1219 \: \vdots \: 23\).

      Полное условие можно найти тут

      Несмотря на то, что сложность задачи 45%, для её решения достаточно выписать условие.

      Пусть \(p_1\) содержит в себе \(k\) цифр, т.е. \(n = r \cdot 10^k + p_1\), где \(r\) — какое-то натуральное число с отрезка \(\left[ 1; p_2-1 \right]\)

      Давайте посчитаем остатки по модулю \(p_2\): \(n \equiv r \cdot 10^k + p_1 \equiv 0\). Отсюда получим явную формулу для \(r\):

      $$ r \equiv -p_1 \cdot 10^{-k} \equiv -p_1 \cdot 10^{p_2 -1-k} $$

      Комментарии:

      1. Так как \(a^p \equiv a \mod p\), то верно что \(a^{-k} \equiv a^{p -1-k} \mod p\)
      2. Это всё бессмысленно, если не знать про алгоритм быстрого возведения в степень, который делает асимптотическую сложность возведения в степень логарифмической.

      У нас есть явная формула для порождающего, и мы знаем как её быстро посчитать. Ниже приведён код на Python с использованием sympy.

      from sympy import primerange  # для получения простых чисел
      -
      -# быстрое возведение в степень по модулю
      -def fast_pow(x, y, modulo):
      -    if y == 0:
      -       return 1
      -    p = fast_pow(x, y // 2, modulo)
      -    p = (p * p) % modulo
      -    if y % 2:
      -        p = (p * x) % modulo
      -    return p
      -
      -# нам нужно первое простое, которое больше 10^6 -- 10^6+3
      -primes = list(primerange(5,10**6+4)) 
      -
      -sm = 0
      -
      -for i in range(len(primes) - 1):
      -    digs = len(str(primes[i])) # количество цифр
      -    r = (primes[i+1]**2  - primes[i] * fast_pow(10, primes[i+1] - 1 - digs, primes[i+1])) % primes[i+1]
      -    sm += r * 10**digs + primes[i]
      -
      -print('Result is {}'.format(sm))
      -

      Ответ: 18613426663617118





    \ No newline at end of file + \ No newline at end of file diff --git a/posts/moio-reshenie-zadachi-134/index.html.gz b/posts/moio-reshenie-zadachi-134/index.html.gz index a8150b0..909e82e 100644 Binary files a/posts/moio-reshenie-zadachi-134/index.html.gz and b/posts/moio-reshenie-zadachi-134/index.html.gz differ diff --git a/posts/moio-reshenie-zadachi-146/index.html b/posts/moio-reshenie-zadachi-146/index.html index d50b4f7..0872d66 100644 --- a/posts/moio-reshenie-zadachi-146/index.html +++ b/posts/moio-reshenie-zadachi-146/index.html @@ -1,112 +1,112 @@ - Моё решение задачи 146 Моё решение задачи 146
    1. Моё решение задачи 146

      Необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.

      Полное условие можно найти тут

      Хочется отметить, что сложность у задачи 50%, а на текущий момент её решило меньше 4000 человек. Тем не менее, мне она показалось простой. Простейшее решение отработало очень быстро.

      Для начала, можно отметить, что в лоб проверять условие очень долго. Проверять на простоту числа порядка \(10^{15}\) достаточно сложно, поэтому их нужно как-то отсеять.

      Самое простое — не рассматривать те \(n\), что хотя бы одно из \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будет заведомо делиться на какое-то маленькое простое число. Это даёт достаточно хорошие результаты: из 150 миллионов чисел, после отсеивания по простым числам \(< 3000\) (этот параметр я подбирал уже после решения задач: если он слишком маленький, то будет слишком много проверок на простоту, если же слишком большой, то мы делаем слишком много работы, чтобы отсеять несколько чисел), останется меньше \(2000\) чисел. Их уже можно проверить непосредственно.

      Тогда алгоритм может быть таким:

      1. Находим простые числа меньше \(3000\).
      2. Для каждого из них находим допустимые остатки.
      3. Для каждого из чисел от \(1\) до \(n\) проверяем, что остатки по всем простым хорошие.
      4. Непосредственно проверяем условие. Важно не забыть проверить непростоту оставшихся нечётных чисел из диапазона \(n^2 + 1 \ldots n^2 + 27\) там могут быть (и будут!) другие простые числа.

      Непосредственно сам поиск такой клики можно реализовать тривиально. Ниже мой код на C++11 с использованием библиотек Flint и primesieve. Распараллеливание хоть и просится, но смысла не имеет, т.к. я получил ответ менее, чем за 5 секунд.

      /*
      - * Problem 146 on Project Euler
      - * Aleksey Lobanov (c) 2016
      - */
      -
      -#include <iostream>
      -#include <vector>
      -#include <cstdint>
      -#include <set>
      -#include <iomanip>
      -#include <algorithm>
      -
      -#include "fmpzxx.h"
      -#include "arithxx.h"
      -
      -#include "primesieve.hpp"
      -
      -using namespace std;
      -using namespace flint;
      -
      -bool is_prime(int64_t num) {
      -    fmpz_factorxx fact;
      -    fact.set_factor(num);
      -    if ( fact.size() != 1 )
      -        return false;
      -    if ( fact.exp(0) != 1) 
      -        return false;
      -    return true;
      -}
      -
      -bool is_possible(int64_t num, const vector<int64_t> &to_add) {
      -    for (auto &&add: to_add)
      -        if ( !is_prime(num*num + add) )
      -            return false;
      -
      -    // primes must be consecutive
      -    // so we need check, that other numbers like n^2 + i is not primes
      -    vector<int64_t> other_adds;
      -    for (size_t i = to_add[0] + 2; i < to_add[to_add.size() - 1]; i += 2) 
      -        if ( !binary_search(to_add.begin(), to_add.end(), i) )
      -            other_adds.push_back(i);
      -
      -    for (auto &&add: other_adds)
      -        if ( is_prime(num*num + add) )
      -            return false;    
      -
      -    return true;
      -}
      -
      -int main() {
      -    const vector<int64_t> to_add = {1, 3, 7, 9, 13, 27};
      -
      -    const int64_t MAX_N = 1l*150*1000*1000;
      -    const int64_t MAX_PRIME = 3000;
      -
      -    vector<int64_t> sieve_primes;
      -    primesieve::generate_primes(MAX_PRIME, &sieve_primes);
      -
      -    vector< vector <int64_t> > good_remainders; 
      -    for (auto &&prime: sieve_primes) {
      -        set<int64_t> remainders;
      -        for(int64_t rem = 0; rem < prime; ++rem)
      -            remainders.insert(rem);
      -
      -        set<int64_t> base_remainders;
      -        for (auto &&base: to_add)
      -            base_remainders.insert(base % prime);
      -
      -        for (int64_t rem = 0; rem < prime; ++rem)
      -            for (auto &&base_rem: base_remainders)
      -                if ( (rem*rem + base_rem) % prime == 0 )
      -                    remainders.erase(rem);
      -
      -        good_remainders.push_back(vector<int64_t>(remainders.begin(), remainders.end()));
      -    }
      -
      -    size_t cnt = 0;
      -    size_t sum = 0;
      -
      -    /* WARNING
      -     * for small n can be that
      -     * n^2 + [1 or 3 or .. ] is prime in sieve primes
      -     * but there is only one n < 315410 is 10,
      -     * so we need add 10 to n
      -     */
      -    sum += 10;
      -
      -    for (int64_t i = 1; i < MAX_N; ++i) {
      -        bool is_good = true;
      -        for (size_t prime_ind = 0; prime_ind < sieve_primes.size(); ++prime_ind) {
      -            if ( !binary_search(good_remainders[prime_ind].begin(), good_remainders[prime_ind].end(), i % sieve_primes[prime_ind]) ) {
      -                is_good = false;
      -                break;
      -            }
      -        }
      -        if ( is_good ) {
      -            cnt++;
      -            if ( is_possible(i, to_add) ) {
      -                sum += i;
      -            }          
      -        }
      -    }
      -    cout << "count = " << cnt << endl;
      -    cout << "Result is: " << sum << endl;
      -    return 0;
      -}
      -

      Ответ: 676333270





    \ No newline at end of file + \ No newline at end of file diff --git a/posts/moio-reshenie-zadachi-146/index.html.gz b/posts/moio-reshenie-zadachi-146/index.html.gz index 405fb3a..2db1e65 100644 Binary files a/posts/moio-reshenie-zadachi-146/index.html.gz and b/posts/moio-reshenie-zadachi-146/index.html.gz differ diff --git a/posts/moio-reshenie-zadachi-60/index.html b/posts/moio-reshenie-zadachi-60/index.html index d497ca8..32e81d4 100644 --- a/posts/moio-reshenie-zadachi-60/index.html +++ b/posts/moio-reshenie-zadachi-60/index.html @@ -1,171 +1,171 @@ - Моё решение задачи 60 Моё решение задачи 60
    1. Моё решение задачи 60

      Необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число. Здесь под процедурой “склеивания” чисел \(a\) и \(b\) подразумевается получения из \(a = \overline{a_1 a_2 \ldots a_n}\) и \(b = \overline{b_1 b_2 \ldots b_m}\) некоторого \(c\) так, что \(c = \overline{a_1 a_2 \ldots a_n b_1 b_2 \ldots b_m}\).

      Полное условие можно найти тут

      Для начала, можно понять, что непосредственный перебор “в лоб” слишком медленный и нужного результата не даст. Поэтому хочется уйти от, как мне кажется, не самого формализуемого условия к чему-то более простого, с чем проще работать. Давайте сначала поймём, какие вообще числа могут быть в одном множестве. Для этого достаточно перебрать все разбиения на два подчисла всех простых чисел. Это достаточно быстро, порядка \(O\left( N \right)\) операций. Важно не забыть, что мы можем разбивать число \(p\) только на \(\overline{p_1 p_2}\), между числами не может быть нулей! То есть если число 37 разбивается на 3 и 7, то 307 нет.

      Пусть мы получили набор таких разбиений, то есть набор пар вида \(\left( p, q \right)\). Давайте составим из них граф, где вершинки это простые числа, а ориентированное ребро из \(p\) в \(q\) означает, что есть пара \(\left( p, q \right)\). Из того, что порядок склеивания чисел произвольный сразу следует, что рассматриваемый граф должен быть неориентированным. Таким образом, все пары \(\left( p, q \right)\) для которых нет пары \(\left( q, p \right)\) необходимо выкинуть, а из оставшихся построить граф.

      Теперь задача стало гораздо понятнее: достаточно выбрать клику размера 5, что сумма значений её вершин минимальна. В общем случае, это достаточно ресурсоёмкая(как мне кажется) задача, но в реальном графе количество рёбер не слишком большое. В худшем случае, по теореме Турана, количество рёбер в графе лишь с одной такой кликой примерно на 10% меньше числа рёбер в полном графе.

      Непосредственно сам поиск такой клики можно реализовать тривиально. Ниже мой код на C++11 с использованием библиотеки Boost Graph Library (BGL).

      #include <iostream>
      -#include <algorithm>
      -#include <vector>
      -#include <set>
      -#include <map>
      -#include <cstdint>
      -
      -#include <boost/graph/adjacency_list.hpp>
      -#include "primesieve.hpp"
      -
      -using namespace std;
      -using namespace boost;
      -
      -typedef adjacency_list<listS, vecS, undirectedS> Graph;
      -
      -template <class T> 
      -vector< T > getDigs(T num) {
      -    vector< T > res;
      -    while ( num != 0 ) {
      -        res.push_back(num % 10);
      -        num = num / 10;
      -    }
      -    reverse(res.begin(),res.end());
      -    return res;
      -}
      -
      -template <class T>
      -T getNum(const vector<T> &digs){
      -    T res(0);
      -    T cur_mult(1);
      -    for (auto it = digs.rbegin(); it != digs.rend(); ++it){
      -        res += *it * cur_mult;
      -        cur_mult *= T(10);
      -    }
      -    return res;
      -}
      -
      -template <class T>
      -vector< pair<T,T> > getPrimePairs(T prime, set<T> &primes) {
      -    vector< pair<T,T> > res;
      -    auto digs = getDigs<T>(prime);
      -    for (size_t i = 1; i <= digs.size() - 1; ++i){
      -        T q1 = getNum(vector<T>(digs.begin(), digs.begin() + i));
      -        T q2 = getNum(vector<T>(digs.begin() + i, digs.end()));
      -
      -        if ( (primes.find(q1) != primes.end())
      -          && (primes.find(q2) != primes.end()) && (digs.at(i) != 0) ){
      -            res.push_back(make_pair(q1,q2));
      -          }
      -    }
      -    return res;
      -}
      -
      -// removes all (p,q) that (p,q) in edges but (q,p) is not
      -template <class T>
      -void delBadEdges(vector< pair<T,T> > &edges){
      -    map< int64_t, int > mults; // contains counts of p * q
      -
      -    for (auto p: edges) {
      -        int64_t key = p.first * p.second;
      -        if ( mults.find(key) != mults.end() )
      -            mults[key] += 1;
      -        else
      -            mults[key] = 1;
      -    }
      -    vector< pair<T,T> > res;
      -    for (auto p: edges) {
      -        int64_t key = p.first * p.second;
      -        if ( mults[key] == 2 ){
      -            res.push_back(p);
      -            // edge (p,q) is already exists
      -            mults[key] = 0;
      -        }
      -    }
      -    swap(res, edges);
      -}
      -
      -template <class T> 
      -set<T> getUniqNums(vector< pair<T,T> > &edges){
      -    set<T> res;
      -    for (auto p: edges) {
      -        res.insert(p.first);
      -        res.insert(p.second);        
      -    }
      -    return res;
      -}
      -
      -template <class T>
      -void getNeedSet(Graph &g, Graph::vertex_descriptor st,int depth, 
      -    set<Graph::vertex_descriptor> cur_set, const map<Graph::vertex_descriptor, T> &vert_prime,
      -    vector< set<Graph::vertex_descriptor> > &v_out){
      -    auto edges = out_edges(st, g);
      -    vector< Graph::vertex_descriptor > adj_verts;
      -    for (auto e_it = edges.first; e_it != edges.second; ++e_it)
      -        adj_verts.push_back(target(*e_it,g));
      -
      -    for (auto prev_v: cur_set)
      -        if ( find(adj_verts.begin(), adj_verts.end(), prev_v) == adj_verts.end() )
      -            return;
      -
      -    cur_set.insert(st);
      -
      -    if ( depth == 1 ){
      -        v_out.push_back(cur_set);
      -        return;
      -    }
      -
      -    for (auto v: adj_verts){
      -        if ( (vert_prime.at(v) < vert_prime.at(st)) )
      -            continue;
      -        getNeedSet(g,v,depth - 1, cur_set, vert_prime, v_out);
      -    }
      -}
      -
      -int main(int argc, char **argv) {
      -    const int MAX_VAL = 100000000;
      -    vector< long > v_primes;
      -    primesieve::generate_primes(MAX_VAL, &v_primes);
      -    set< long >    s_primes(v_primes.begin(), v_primes.end());
      -
      -    cout << "Number of primes is " << v_primes.size() << endl;
      -    v_primes.clear();
      -
      -    vector< pair< long,long > > all_edges;
      -    for (auto pr: s_primes){
      -        auto t_v = getPrimePairs(pr, s_primes);
      -        copy(t_v.begin(),t_v.end(),back_inserter(all_edges));
      -    }
      -    cout << "There are " << all_edges.size() << " edges" << endl;
      -    delBadEdges(all_edges);
      -    cout << "After deleting bad edges: " << all_edges.size() << " edges" << endl;
      -    // We only need this primes
      -    s_primes = getUniqNums(all_edges);
      -    map< Graph::vertex_descriptor, long > vert_prime;
      -    map< long, Graph::vertex_descriptor > prime_vert;
      -    Graph g;
      -    for (auto pr: s_primes){
      -        vert_prime[add_vertex(g)] = pr;
      -    }
      -    for (auto v: vert_prime){
      -        prime_vert[v.second] = v.first;
      -    }
      -    for (auto p: all_edges)
      -        add_edge(prime_vert.at(p.first),prime_vert.at(p.second),g);
      -    auto all_vertices = vertices(g);
      -    vector< set<Graph::vertex_descriptor> > goods;
      -    for (auto v_it = all_vertices.first; v_it != all_vertices.second; ++v_it){
      -        getNeedSet(g, *v_it,5, set<Graph::vertex_descriptor>(), vert_prime, goods);
      -    }
      -    vector< pair<size_t, size_t> > good_sums;
      -    for (size_t i = 0; i < goods.size(); ++i){
      -        cout << "Good set #" << i+1 << ": ";
      -        size_t cur_sum = 0;
      -        for (auto el: goods[i]){
      -            el = vert_prime.at(el);
      -            cur_sum += el;
      -            cout << el << " ";
      -        }
      -        cout << endl;
      -        good_sums.push_back(make_pair(cur_sum, i));
      -    }
      -    if ( !good_sums.empty() )
      -        cout << "Result is " << min_element(good_sums.begin(),good_sums.end(), [](pair<size_t, size_t> a, pair<size_t, size_t> b){return a.first < b.first;})->first << endl;
      -    return 0;
      -}
      -

      Ответ: 26033

      UPD. Кажется, getNeedSet можно было реализовать гораздо проще, использую BGL посетителей (Visitors). Но, к сожалению, на этапе написания кода я про это забыл.





    \ No newline at end of file + \ No newline at end of file diff --git a/posts/moio-reshenie-zadachi-60/index.html.gz b/posts/moio-reshenie-zadachi-60/index.html.gz index 2087f3c..6c58ec1 100644 Binary files a/posts/moio-reshenie-zadachi-60/index.html.gz and b/posts/moio-reshenie-zadachi-60/index.html.gz differ diff --git a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html index 60cee34..dcb6d5d 100644 --- a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html +++ b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html @@ -1,6 +1,6 @@ - Нахождение суммы k-ых степеней Нахождение суммы k-ых степеней
    1. Нахождение суммы k-ых степеней

      Давайте сразу обобщим задачу до нахождения \(f_k\left( n \right)\), где

      $$f_k\left( n \right) = 1^k + 2^k + \ldots + n^k$$

      Для \(k=1\) формула известна всем школьникам: \(f_1\left( n \right) = \frac{n\left(n+1 \right)}{2}\). Формулу для \(k=2\) знают уже не все, но всё же в школе её найти можно (я видел на обложке учебника по алгебре): \(f_2\left( n \right) = \frac{n\left(n+1 \right) \left( 2n + 1 \right)}{6}\)

      Интуиция может подсказать, что \(f_k \left( n \right)\) есть некий полином со степенью \(k+1\). Если это так, то его нахождение тривиально. Например, можно посчитать его в явном виде, используя полином Лагранжа. Осталось показать, что наша функция представима в таком виде.

      Для начала введём обозначение. “Нижней степенью”, \(x^{\underline{k}}\), будем обозначать такое выражение:

      $$x^{\underline{k}} = x(x-1)\cdot \ldots \cdot (x-k+1)$$

      .

      Далее, заметим следующее, если \(a_i = A_{i+1} - A_i\), где \(\lbrace a_i \rbrace\) и \(\lbrace A_i \rbrace\) — некие последовательности, то \(\sum_{i=1}^n = A_{n+1}-A_1\) (телескопирование, можно посмотреть тут, с. 6).

      Теперь посчитаем сумму \(\sum_{i=1}^n i^{\underline{k}}\). Для этого достаточно понять, что \(\left( x+1 \right)^{\underline{k+1}} - \left(x \right)^{\underline{k+1}} = \left( k+ 1 \right)x^{\underline{k}}\). Отсюда сразу получаем, что

      $$\sum_{i=1}^n i^{\underline{k}} = \frac{\left( n+1 \right)^{\underline{k+1}}}{k+1}$$

      Осталось показать, что “нормальные” степени выражаются через нижние. Начнём со степени \(k=1\), тут всё просто:

      $$x = x^{\underline{1}}$$

      С бОльшими степенями сделаем следующее: считая, что все степени, меньше, чем \(k\) мы выражать умеем, раскроем скобки в определении нижней степени. Теперь поймём, что старший коэффициент \(1\): \(x^{\underline{k}} = x^k + \sum_{i=1}^k a_ix^i\) или \(x^k = \sum_{i=1}^k a_ix^i - x^{\underline{k}}\). Осталось понять, что каждое из слагаемых вида \(a_ix^i\) мы умеем выражать через нижние степени. Таким образом, можно получить следующее:

      $$ \sum_{i=1}^{n} i^k = \sum_{i=1}^{n} \sum_{j=1}^{k} a_j i^{\underline{k}} = \sum_{j=1}^{k} \sum_{i=1}^{n} a_j i^{\underline{k}} = \sum_{j=1}^{k} \frac{a_j \left(n+1 \right)^{\underline{k+1}}}{k+1}$$

      Кстати, формула для суммы в самом начале такая:

      $$ \sum_{i=1}^n i^5 = \frac{1}{12} n^2 \left(n+1 \right)^2 \left(2n^2 + 2n-1 \right) $$




    \ No newline at end of file + \ No newline at end of file diff --git a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz index ae77b1d..d3fe57f 100644 Binary files a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz and b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz differ diff --git a/posts/wallabag-i-realnaia-zhizn/index.html b/posts/wallabag-i-realnaia-zhizn/index.html index 47e705f..c048b1a 100644 --- a/posts/wallabag-i-realnaia-zhizn/index.html +++ b/posts/wallabag-i-realnaia-zhizn/index.html @@ -1,6 +1,6 @@ - Wallabag и реальная жизнь Wallabag и реальная жизнь
    1. Wallabag и реальная жизнь

      Начать следует с того, что Wallabag действительно является самым популярным среди открытых приложений для отложенного чтения. Можно взять, например, alternativeto:

      Первый релиз вышел почти два года назад. Тем не менее, мне сложно назвать продукт зрелым. Последняя, на момент написания, версия 2.0.0-beta.2 не может похвастаться простым процессом установки. Вариант просто выполнить команды из мануалов по очереди у меня не получился. В этом соперничать с тем же Pocket, очевидно, бессмысленно.

      Стандартная тема, material, ужасно выглядит на моём ноутбуке с разрешением 1366x768, элементы явно рассчитаны на большую диагональ. Ещё часть места отъедает неубирающаяся плашка внизу страницы, предупреждающая о том, что баги в бета версии не есть что-то плохое. Официальное Android приложение упорно не может найти сервер.

      После волевого решения перейти на стабильную версию (то есть откатиться в равзвитии на полгода назад), дела улучшились, но не сильно. Количество настроек минимально, если не сказать, что их вообще нет. Но оно работает, вроде.

      Сложности, впрочем, только начались. Обещанная синхронизация с Pocket работает, мягко говоря, неоптимально. После загрузки экспортированного html файла со ссылками, wallabag почти час выкачивал мои 750 статей. Где-то на 500-й статье он выделил слишком много памяти и упал с ошибкой. После этого пришлось руками искать потенциально проблемные статьи и удалять их по одной — удалить сразу несколько элементов невозможно. Затем надо было выкачивать ещё 250 статей, периодически посматривая, чтобы ничего снова не упало.

      Кажется, что все проблемы закончились, но нет. Дальше синхронизация с телефоном. Она заняла почти столько же времени, при этом, начальное очевидное предположение о том, что токен безопасности вбивать не нужно (он сам заполняется в приложении) стоило где-то 15 минут поиска. Но и это не всё. После того, как база загрузилась, небольшие изменения на телефоне (такие как удаление статьи) синхронизировались больше минуты!

      Резюме: пользоваться можно, но советовать кому-либо это использовать я точно не стану.

      Этого бы поста не было бы, если бы я сказал, что Wallabag плохой, а OTHER_PRODUCT хороший и можно пользоваться им. Но я так написать не могу. Ни я, ни alternativeto других решений не знают. Значит нужно их создать. На моём слабеньком VPS уже почти год трудится Syncthing, управляя значительным количеством файлов с минимальной нагрузкой на ЦП. Поэтому мне кажется, что Go подойдёт идеально.

      Если написать подобный продукт на Go, то многие проблемы даже не появятся:

      • не нужно разрешать большое количество зависимостей — достаточно одного бинарника
      • скорость генерации контента (например, создание pdf, epub) будет значительно выше
      • небольшой оверхед позволит всё хранить в памяти
      • работа почти на чём угодно

      В совокупности, будет достигнуто, как мне кажется, самое главное — удобство для обычного пользователя, который сможет без проблем развернуть это на любом VPS.



    \ No newline at end of file + \ No newline at end of file diff --git a/posts/wallabag-i-realnaia-zhizn/index.html.gz b/posts/wallabag-i-realnaia-zhizn/index.html.gz index 68af5f2..247b7d8 100644 Binary files a/posts/wallabag-i-realnaia-zhizn/index.html.gz and b/posts/wallabag-i-realnaia-zhizn/index.html.gz differ diff --git a/sitemap.xml b/sitemap.xml index e24a9b9..67df073 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -5,35 +5,42 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> https://likemath.ru/ -2018-10-02T00:59:56-00:00 -daily -0.5 - - - -https://likemath.ru/archives.html -2018-10-02T00:59:56-00:00 +2020-11-04T00:18:59-00:00 daily 0.5 https://likemath.ru/tags.html -2018-10-02T00:59:56-00:00 +2020-11-04T00:18:59-00:00 daily 0.5 https://likemath.ru/categories.html -2018-10-02T00:59:56-00:00 +2020-11-04T00:18:59-00:00 +daily +0.5 + + + +https://likemath.ru/authors.html +2020-11-04T00:18:59-00:00 +daily +0.5 + + + +https://likemath.ru/archives.html +2020-11-04T00:18:59-00:00 daily 0.5 https://likemath.ru/pages/about.html -2017-04-17T00:00:00+03:00 +2020-11-01T00:00:00+03:00 monthly 0.5 @@ -45,6 +52,13 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 0.5 + +https://likemath.ru/posts/kak-ia-delaiu-bekapy-pochty/ +2020-11-01T13:35:00+03:00 +monthly +0.5 + + https://likemath.ru/posts/dolgie-soobshcheniia-v-rabbitmq/ 2018-10-02T01:40:00+03:00 @@ -131,7 +145,7 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> https://likemath.ru/category/proekty.html -2017-07-17T13:35:00+02:30 +2020-11-01T13:35:00+02:30 daily 0.5 @@ -151,57 +165,22 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> -https://likemath.ru/tag/matematika.html -2016-07-22T13:35:00+02:30 +https://likemath.ru/tag/python.html +2020-11-01T13:35:00+02:30 +daily +0.5 + + + +https://likemath.ru/tag/bekapy.html +2020-11-01T13:35:00+02:30 daily 0.5 https://likemath.ru/tag/proekt.html -2017-07-17T13:35:00+02:30 -daily -0.5 - - - -https://likemath.ru/tag/c.html -2016-10-21T17:40:00+02:30 -daily -0.5 - - - -https://likemath.ru/tag/shakhmaty.html -2017-07-17T13:35:00+02:30 -daily -0.5 - - - -https://likemath.ru/tag/bgl.html -2015-11-22T23:41:00+02:30 -daily -0.5 - - - -https://likemath.ru/tag/python.html -2018-10-02T01:40:00+02:30 -daily -0.5 - - - -https://likemath.ru/tag/bot.html -2016-01-10T13:35:00+02:30 -daily -0.5 - - - -https://likemath.ru/tag/lichess.html -2017-07-17T13:35:00+02:30 +2020-11-01T13:35:00+02:30 daily 0.5 @@ -214,22 +193,15 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> -https://likemath.ru/tag/blog.html -2015-04-17T13:35:00+02:30 +https://likemath.ru/tag/shakhmaty.html +2017-07-17T13:35:00+02:30 daily 0.5 -https://likemath.ru/tag/wxwidgets.html -2015-08-04T17:40:00+02:30 -daily -0.5 - - - -https://likemath.ru/tag/flint.html -2016-10-21T17:40:00+02:30 +https://likemath.ru/tag/lichess.html +2017-07-17T13:35:00+02:30 daily 0.5 @@ -242,15 +214,29 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> -https://likemath.ru/tag/go.html -2016-03-17T13:35:00+02:30 +https://likemath.ru/tag/sympy.html +2016-10-30T17:40:00+02:30 daily 0.5 -https://likemath.ru/tag/sympy.html -2016-10-30T17:40:00+02:30 +https://likemath.ru/tag/c.html +2016-10-21T17:40:00+02:30 +daily +0.5 + + + +https://likemath.ru/tag/flint.html +2016-10-21T17:40:00+02:30 +daily +0.5 + + + +https://likemath.ru/tag/matematika.html +2016-07-22T13:35:00+02:30 daily 0.5 @@ -269,9 +255,44 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 0.5 + +https://likemath.ru/tag/go.html +2016-03-17T13:35:00+02:30 +daily +0.5 + + + +https://likemath.ru/tag/bot.html +2016-01-10T13:35:00+02:30 +daily +0.5 + + + +https://likemath.ru/tag/wxwidgets.html +2015-08-04T17:40:00+02:30 +daily +0.5 + + + +https://likemath.ru/tag/bgl.html +2015-11-22T23:41:00+02:30 +daily +0.5 + + + +https://likemath.ru/tag/blog.html +2015-04-17T13:35:00+02:30 +daily +0.5 + + https://likemath.ru/author/aleksei-lobanov.html -2018-10-02T01:40:00+02:30 +2020-11-01T13:35:00+02:30 daily 0.5 diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 91c05d5..4a518dc 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ diff --git a/tag/bekapy.html b/tag/bekapy.html new file mode 100644 index 0000000..476afb6 --- /dev/null +++ b/tag/bekapy.html @@ -0,0 +1,14 @@ + Блог 529 - бэкапы

    Page 1 / 1
    \ No newline at end of file diff --git a/tag/bekapy.html.gz b/tag/bekapy.html.gz new file mode 100644 index 0000000..3f59f93 Binary files /dev/null and b/tag/bekapy.html.gz differ diff --git a/tag/bgl.html b/tag/bgl.html index 82d0e97..38aeb11 100644 --- a/tag/bgl.html +++ b/tag/bgl.html @@ -1,6 +1,6 @@ - Блог 529 - BGL Блог 529 - BGL
    1. Моё решение задачи 60

      Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/bgl.html.gz b/tag/bgl.html.gz index 3cef975..c4644cd 100644 Binary files a/tag/bgl.html.gz and b/tag/bgl.html.gz differ diff --git a/tag/blog.html b/tag/blog.html index 7db73f7..0450f99 100644 --- a/tag/blog.html +++ b/tag/blog.html @@ -1,6 +1,6 @@ - Блог 529 - блог Блог 529 - блог

    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/blog.html.gz b/tag/blog.html.gz index 1d4721b..1d91138 100644 Binary files a/tag/blog.html.gz and b/tag/blog.html.gz differ diff --git a/tag/bot.html b/tag/bot.html index 6a19192..bfdf951 100644 --- a/tag/bot.html +++ b/tag/bot.html @@ -1,6 +1,6 @@ - Блог 529 - бот Блог 529 - бот

    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/bot.html.gz b/tag/bot.html.gz index fa76e99..accc7c0 100644 Binary files a/tag/bot.html.gz and b/tag/bot.html.gz differ diff --git a/tag/c.html b/tag/c.html index 20aefc6..bacb60b 100644 --- a/tag/c.html +++ b/tag/c.html @@ -1,6 +1,6 @@ - Блог 529 - c++ Блог 529 - c++
    1. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    2. CrossGen v1.0

      Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


    3. Моё решение задачи 60

      Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


    Page 1 / 1

  • CrossGen v1.0

    Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


  • Моё решение задачи 60

    Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


  • Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/c.html.gz b/tag/c.html.gz index 0712fac..b9db8f2 100644 Binary files a/tag/c.html.gz and b/tag/c.html.gz differ diff --git a/tag/flint.html b/tag/flint.html index 9807932..a249079 100644 --- a/tag/flint.html +++ b/tag/flint.html @@ -1,6 +1,6 @@ - Блог 529 - FLINT Блог 529 - FLINT
    1. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    Page 1 / 1

    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/flint.html.gz b/tag/flint.html.gz index aa915db..395eeb7 100644 Binary files a/tag/flint.html.gz and b/tag/flint.html.gz differ diff --git a/tag/go.html b/tag/go.html index d9d30be..ad171a4 100644 --- a/tag/go.html +++ b/tag/go.html @@ -1,6 +1,6 @@ - Блог 529 - Go Блог 529 - Go
    1. Wallabag и реальная жизнь

      Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/go.html.gz b/tag/go.html.gz index a1f11b4..f8f24f9 100644 Binary files a/tag/go.html.gz and b/tag/go.html.gz differ diff --git a/tag/lichess.html b/tag/lichess.html index 35720ea..5510307 100644 --- a/tag/lichess.html +++ b/tag/lichess.html @@ -1,6 +1,6 @@ - Блог 529 - lichess Блог 529 - lichess
    1. Экспорт партий с Lichess

      Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/lichess.html.gz b/tag/lichess.html.gz index 8df2395..e2191cc 100644 Binary files a/tag/lichess.html.gz and b/tag/lichess.html.gz differ diff --git a/tag/matematika.html b/tag/matematika.html index e30d24c..ec46697 100644 --- a/tag/matematika.html +++ b/tag/matematika.html @@ -1,6 +1,6 @@ - Блог 529 - математика Блог 529 - математика
    1. Нахождение суммы k-ых степеней

      Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?


    Page 1 / 1

    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/matematika.html.gz b/tag/matematika.html.gz index a00e53d..3e66477 100644 Binary files a/tag/matematika.html.gz and b/tag/matematika.html.gz differ diff --git a/tag/open-source.html b/tag/open-source.html index 67f60a4..d09b244 100644 --- a/tag/open-source.html +++ b/tag/open-source.html @@ -1,6 +1,6 @@ - Блог 529 - open source Блог 529 - open source
    1. Wallabag и реальная жизнь

      Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/open-source.html.gz b/tag/open-source.html.gz index 5c06a29..5ec3fc7 100644 Binary files a/tag/open-source.html.gz and b/tag/open-source.html.gz differ diff --git a/tag/proekt.html b/tag/proekt.html index 117b066..8324b96 100644 --- a/tag/proekt.html +++ b/tag/proekt.html @@ -1,6 +1,6 @@ - Блог 529 - проект Блог 529 - проект
    1. Экспорт партий с Lichess

      Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.



    2. CrossGen v1.0

      Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


    3. Ещё одно вычисление выражений

      На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои силы.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/proekt.html.gz b/tag/proekt.html.gz index 9f913c3..0f09608 100644 Binary files a/tag/proekt.html.gz and b/tag/proekt.html.gz differ diff --git a/tag/project-euler.html b/tag/project-euler.html index 8c0cfb0..98a136b 100644 --- a/tag/project-euler.html +++ b/tag/project-euler.html @@ -1,6 +1,6 @@ - Блог 529 - Project Euler Блог 529 - Project Euler
    1. Моё решение задачи 134

      Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)


    2. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    3. Моё решение задачи 146

      Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.


    4. Моё решение задачи 60

      Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


    Page 1 / 1

  • Моё решение задачи 60

    Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


  • Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/project-euler.html.gz b/tag/project-euler.html.gz index ddb807e..8be5024 100644 Binary files a/tag/project-euler.html.gz and b/tag/project-euler.html.gz differ diff --git a/tag/python.html b/tag/python.html index edcf1df..cc05f21 100644 --- a/tag/python.html +++ b/tag/python.html @@ -1,6 +1,6 @@ - Блог 529 - Python Блог 529 - Python
    1. Долгие сообщения в RabbitMQ

      Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это исправить.


    2. Моё решение задачи 134

      Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)


    Page 1 / 1

    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/python.html.gz b/tag/python.html.gz index 832eb0f..4dd14b8 100644 Binary files a/tag/python.html.gz and b/tag/python.html.gz differ diff --git a/tag/rabbitmq.html b/tag/rabbitmq.html index dedc719..5d01560 100644 --- a/tag/rabbitmq.html +++ b/tag/rabbitmq.html @@ -1,6 +1,6 @@ - Блог 529 - RabbitMQ Блог 529 - RabbitMQ
    1. Долгие сообщения в RabbitMQ

      Почему стандартная Python библиотека для RabbitMQ не работает с длинными сообщениями и как это исправить.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/rabbitmq.html.gz b/tag/rabbitmq.html.gz index 1d8cb9c..71dc083 100644 Binary files a/tag/rabbitmq.html.gz and b/tag/rabbitmq.html.gz differ diff --git a/tag/shakhmaty.html b/tag/shakhmaty.html index cdaaba8..2bc8410 100644 --- a/tag/shakhmaty.html +++ b/tag/shakhmaty.html @@ -1,6 +1,6 @@ - Блог 529 - шахматы Блог 529 - шахматы
    1. Экспорт партий с Lichess

      Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.



    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/shakhmaty.html.gz b/tag/shakhmaty.html.gz index 2316b70..9c9794b 100644 Binary files a/tag/shakhmaty.html.gz and b/tag/shakhmaty.html.gz differ diff --git a/tag/sympy.html b/tag/sympy.html index 72b5b29..d0637ef 100644 --- a/tag/sympy.html +++ b/tag/sympy.html @@ -1,6 +1,6 @@ - Блог 529 - sympy Блог 529 - sympy
    1. Моё решение задачи 134

      Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)


    Page 1 / 1

    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/sympy.html.gz b/tag/sympy.html.gz index 370782d..473bd25 100644 Binary files a/tag/sympy.html.gz and b/tag/sympy.html.gz differ diff --git a/tag/wallabag.html b/tag/wallabag.html index f268508..a2bc2df 100644 --- a/tag/wallabag.html +++ b/tag/wallabag.html @@ -1,6 +1,6 @@ - Блог 529 - wallabag Блог 529 - wallabag
    1. Wallabag и реальная жизнь

      Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/wallabag.html.gz b/tag/wallabag.html.gz index 270dbe2..8647745 100644 Binary files a/tag/wallabag.html.gz and b/tag/wallabag.html.gz differ diff --git a/tag/wxwidgets.html b/tag/wxwidgets.html index 7ea74e1..e46f2de 100644 --- a/tag/wxwidgets.html +++ b/tag/wxwidgets.html @@ -1,6 +1,6 @@ - Блог 529 - wxWidgets Блог 529 - wxWidgets
    1. CrossGen v1.0

      Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


    Page 1 / 1
    \ No newline at end of file + \ No newline at end of file diff --git a/tag/wxwidgets.html.gz b/tag/wxwidgets.html.gz index d36ca14..9661045 100644 Binary files a/tag/wxwidgets.html.gz and b/tag/wxwidgets.html.gz differ diff --git a/tags.html b/tags.html index aacf052..31aaee4 100644 --- a/tags.html +++ b/tags.html @@ -1,6 +1,6 @@ - Блог 529 - Tags Блог 529 - Tags \ No newline at end of file + \ No newline at end of file diff --git a/tags.html.gz b/tags.html.gz index 4664606..ac4d28c 100644 Binary files a/tags.html.gz and b/tags.html.gz differ diff --git a/theme/css/blog.css b/theme/css/blog.css index 146eb5d..8fc0242 100644 --- a/theme/css/blog.css +++ b/theme/css/blog.css @@ -1 +1,173 @@ -body{color:#272822;background-color:#eee;font-family:"PT Sans",sans-serif}#sidebar{background:url("../img/stressed_linen/stressed_linen.png") repeat;position:fixed;left:0;bottom:0;right:auto;top:0;width:25%;min-width:200px;padding-left:8px;padding-right:8px;color:#eee}#sidebar a{color:#eee;text-decoration:none}#site-title{font-family:"Philosopher",sans-serif;font-size:2em;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s;transition:all .3s}#site-title:hover{color:#38c5c5}#site-desc{font-size:1.3em;padding:0 6px}#post-container{position:relative;margin-left:27%;max-width:800px;overflow-wrap:break-word}#nav-links{list-style:none;padding:0;font-family:"Philosopher",sans-serif;font-size:2em;font-variant:bold}#nav-links li{margin:12px 12px}#nav-links a{padding:0 24px;border-radius:24px;display:inline-block;border:3px solid #eee;line-height:1.8em;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s;transition:all .3s}#nav-links a:hover{border-color:#38c5c5;color:#38c5c5}#post-list{list-style:none}.post-entry{margin:3em 0}.entry-header{font-family:"Forum",sans-serif;font-variant:bold}.entry-header a{color:#272822;text-decoration:none}.entry-header a:hover{color:#38c5c5;text-decoration:none}.entry-header time{color:#8e927e}.entry-header h1{margin:.5em 0}.post-content a{color:#38c5c5}.post-content img{display:block;margin:0 auto;max-width:80%}.post-content blockquote{font-style:italic}.post-content pre{font-size:14px;background-color:#e6e6e6;padding:10px;margin:10px;overflow:auto;font-family:"Ubuntu Mono",monospace}.post-meta a{font-style:italic;color:#38c5c5}.paginator{text-align:center;padding:12px;font-size:1.4em;font-family:"Oswald",sans-serif}.paginator a{color:#272822;text-decoration:none}.paginator a:hover{color:#38c5c5}@media only screen and (max-width:800px){#sidebar{position:static;width:100%;padding:0}#post-container{width:100%;position:static;margin:0;padding:0}#post-list{padding:0}#nav-links{text-align:center;padding:0;font-size:1.8em}#nav-links li{display:inline;margin-top:6px}#nav-links a{display:inline-block}#site-title h1{margin-top:0}#site-header{margin-left:18px}.side-shadow{-webkit-box-shadow:0 3px 12px 3px #8e927e;-moz-box-shadow:0 3px 12px 3px #8e927e;box-shadow:0 3px 12px 3px #8e927e}.post-entry{padding:0 12px}}@media only screen and (max-width:640px){#nav-links{font-size:1.1em}#site-desc{font-size:1em}#site-title h1{font-size:1.3em;margin:.1em 0}#site-info{font-size:.6em}} \ No newline at end of file +body { + color: #272822; + background-color: #eeeeee; + font-family: "PT Sans", sans-serif; } + +#sidebar { + background: url("../img/stressed_linen/stressed_linen.png") repeat; + position: fixed; + left: 0; + bottom: 0; + right: auto; + top: 0; + width: 25%; + min-width: 200px; + padding-left: 8px; + padding-right: 8px; + color: #eeeeee; } + #sidebar a { + color: #eeeeee; + text-decoration: none; } + +#site-title { + font-family: "Philosopher", sans-serif; + font-size: 2em; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -ms-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; } + #site-title:hover { + color: #38c5c5; } + +#site-desc { + font-size: 1.3em; + padding: 0 6px; } + +#post-container { + position: relative; + margin-left: 27%; + max-width: 800px; + overflow-wrap: break-word; } + +#nav-links { + list-style: none; + padding: 0; + font-family: "Philosopher", sans-serif; + font-size: 2em; + font-variant: bold; } + #nav-links li { + margin: 12px 12px; } + #nav-links a { + padding: 0 24px; + border-radius: 24px; + display: inline-block; + border: 3px solid #eeeeee; + line-height: 1.8em; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -ms-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; } + #nav-links a:hover { + border-color: #38c5c5; + color: #38c5c5; } + +#post-list { + list-style: none; } + +.post-entry { + margin: 3em 0; } + +.entry-header { + font-family: "Forum", sans-serif; + font-variant: bold; } + .entry-header a { + color: #272822; + text-decoration: none; } + .entry-header a:hover { + color: #38c5c5; + text-decoration: none; } + .entry-header time { + color: #8e927e; } + .entry-header h1 { + margin: 0.5em 0; } + +.post-content a { + color: #38c5c5; } +.post-content img { + display: block; + margin: 0 auto; + max-width: 80%; } +.post-content blockquote { + font-style: italic; } +.post-content pre { + font-size: 14px; + background-color: #e6e6e6; + padding: 10px; + margin: 10px; + overflow: auto; + font-family: "Ubuntu Mono", monospace; } + +.post-meta a { + font-style: italic; + color: #38c5c5; } + +.paginator { + text-align: center; + padding: 12px; + font-size: 1.4em; + font-family: "Oswald", sans-serif; } + .paginator a { + color: #272822; + text-decoration: none; } + .paginator a:hover { + color: #38c5c5; } + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + Theses examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ +@media only screen and (max-width: 800px) { + /* Style adjustments for viewports that meet the condition */ + #sidebar { + position: static; + width: 100%; + padding: 0; } + + #post-container { + width: 100%; + position: static; + margin: 0; + padding: 0px; } + + #post-list { + padding: 0; } + + #nav-links { + text-align: center; + padding: 0; + font-size: 1.8em; } + #nav-links li { + display: inline; + margin-top: 6px; } + #nav-links a { + display: inline-block; } + + #site-title h1 { + margin-top: 0; } + + #site-header { + margin-left: 18px; } + + .side-shadow { + -webkit-box-shadow: 0 3px 12px 3px #8e927e; + -moz-box-shadow: 0 3px 12px 3px #8e927e; + box-shadow: 0 3px 12px 3px #8e927e; } + + .post-entry { + padding: 0 12px; } } +@media only screen and (max-width: 640px) { + #nav-links { + font-size: 1.1em; } + + #site-desc { + font-size: 1em; } + + #site-title h1 { + font-size: 1.3em; + margin: 0.1em 0px; } + + #site-info { + font-size: 0.6em; } } diff --git a/theme/css/font-awesome.min.css b/theme/css/font-awesome.min.css index 47ee692..ed07928 100644 --- a/theme/css/font-awesome.min.css +++ b/theme/css/font-awesome.min.css @@ -1 +1,408 @@ -@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}a [class^="icon-"],a [class*=" icon-"]{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:.2857142857142857em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em}.icons-ul{margin-left:2.142857142857143em;list-style-type:none}.icons-ul>li{position:relative}.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eee}.icon-light{color:#fff}.icon-dark{color:#333}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none}@-moz-keyframes spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical:before{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-alt:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-power-off:before,.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-alt:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up-alt:before{content:"\f087"}.icon-thumbs-down-alt:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-text-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-collapse:before{content:"\f150"}.icon-collapse-top:before{content:"\f151"}.icon-expand:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-renminbi:before,.icon-cny:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-by-alphabet:before{content:"\f15d"}.icon-sort-by-alphabet-alt:before{content:"\f15e"}.icon-sort-by-attributes:before{content:"\f160"}.icon-sort-by-attributes-alt:before{content:"\f161"}.icon-sort-by-order:before{content:"\f162"}.icon-sort-by-order-alt:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-sign:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-sign:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stackexchange:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-sign:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-sign:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun:before{content:"\f185"}.icon-moon:before{content:"\f186"}.icon-archive:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"} \ No newline at end of file +@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;} +[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;} +.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;} +a [class^="icon-"],a [class*=" icon-"]{display:inline;} +[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;} +.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;} +.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;} +[class^="icon-"].hide,[class*=" icon-"].hide{display:none;} +.icon-muted{color:#eeeeee;} +.icon-light{color:#ffffff;} +.icon-dark{color:#333333;} +.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;} +.pull-right{float:right;} +.pull-left{float:left;} +[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;} +[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;} +[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;} +.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;} +.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;} +.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;} +.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;} +.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;} +.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;} +.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;} +.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;} +.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;} +.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;} +.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;} +.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;} +.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;} +.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;} +a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;} +@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);} +.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);} +.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);} +.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);} +.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);} +a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;} +.icon-glass:before{content:"\f000";} +.icon-music:before{content:"\f001";} +.icon-search:before{content:"\f002";} +.icon-envelope-alt:before{content:"\f003";} +.icon-heart:before{content:"\f004";} +.icon-star:before{content:"\f005";} +.icon-star-empty:before{content:"\f006";} +.icon-user:before{content:"\f007";} +.icon-film:before{content:"\f008";} +.icon-th-large:before{content:"\f009";} +.icon-th:before{content:"\f00a";} +.icon-th-list:before{content:"\f00b";} +.icon-ok:before{content:"\f00c";} +.icon-remove:before{content:"\f00d";} +.icon-zoom-in:before{content:"\f00e";} +.icon-zoom-out:before{content:"\f010";} +.icon-power-off:before,.icon-off:before{content:"\f011";} +.icon-signal:before{content:"\f012";} +.icon-gear:before,.icon-cog:before{content:"\f013";} +.icon-trash:before{content:"\f014";} +.icon-home:before{content:"\f015";} +.icon-file-alt:before{content:"\f016";} +.icon-time:before{content:"\f017";} +.icon-road:before{content:"\f018";} +.icon-download-alt:before{content:"\f019";} +.icon-download:before{content:"\f01a";} +.icon-upload:before{content:"\f01b";} +.icon-inbox:before{content:"\f01c";} +.icon-play-circle:before{content:"\f01d";} +.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";} +.icon-refresh:before{content:"\f021";} +.icon-list-alt:before{content:"\f022";} +.icon-lock:before{content:"\f023";} +.icon-flag:before{content:"\f024";} +.icon-headphones:before{content:"\f025";} +.icon-volume-off:before{content:"\f026";} +.icon-volume-down:before{content:"\f027";} +.icon-volume-up:before{content:"\f028";} +.icon-qrcode:before{content:"\f029";} +.icon-barcode:before{content:"\f02a";} +.icon-tag:before{content:"\f02b";} +.icon-tags:before{content:"\f02c";} +.icon-book:before{content:"\f02d";} +.icon-bookmark:before{content:"\f02e";} +.icon-print:before{content:"\f02f";} +.icon-camera:before{content:"\f030";} +.icon-font:before{content:"\f031";} +.icon-bold:before{content:"\f032";} +.icon-italic:before{content:"\f033";} +.icon-text-height:before{content:"\f034";} +.icon-text-width:before{content:"\f035";} +.icon-align-left:before{content:"\f036";} +.icon-align-center:before{content:"\f037";} +.icon-align-right:before{content:"\f038";} +.icon-align-justify:before{content:"\f039";} +.icon-list:before{content:"\f03a";} +.icon-indent-left:before{content:"\f03b";} +.icon-indent-right:before{content:"\f03c";} +.icon-facetime-video:before{content:"\f03d";} +.icon-picture:before{content:"\f03e";} +.icon-pencil:before{content:"\f040";} +.icon-map-marker:before{content:"\f041";} +.icon-adjust:before{content:"\f042";} +.icon-tint:before{content:"\f043";} +.icon-edit:before{content:"\f044";} +.icon-share:before{content:"\f045";} +.icon-check:before{content:"\f046";} +.icon-move:before{content:"\f047";} +.icon-step-backward:before{content:"\f048";} +.icon-fast-backward:before{content:"\f049";} +.icon-backward:before{content:"\f04a";} +.icon-play:before{content:"\f04b";} +.icon-pause:before{content:"\f04c";} +.icon-stop:before{content:"\f04d";} +.icon-forward:before{content:"\f04e";} +.icon-fast-forward:before{content:"\f050";} +.icon-step-forward:before{content:"\f051";} +.icon-eject:before{content:"\f052";} +.icon-chevron-left:before{content:"\f053";} +.icon-chevron-right:before{content:"\f054";} +.icon-plus-sign:before{content:"\f055";} +.icon-minus-sign:before{content:"\f056";} +.icon-remove-sign:before{content:"\f057";} +.icon-ok-sign:before{content:"\f058";} +.icon-question-sign:before{content:"\f059";} +.icon-info-sign:before{content:"\f05a";} +.icon-screenshot:before{content:"\f05b";} +.icon-remove-circle:before{content:"\f05c";} +.icon-ok-circle:before{content:"\f05d";} +.icon-ban-circle:before{content:"\f05e";} +.icon-arrow-left:before{content:"\f060";} +.icon-arrow-right:before{content:"\f061";} +.icon-arrow-up:before{content:"\f062";} +.icon-arrow-down:before{content:"\f063";} +.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";} +.icon-resize-full:before{content:"\f065";} +.icon-resize-small:before{content:"\f066";} +.icon-plus:before{content:"\f067";} +.icon-minus:before{content:"\f068";} +.icon-asterisk:before{content:"\f069";} +.icon-exclamation-sign:before{content:"\f06a";} +.icon-gift:before{content:"\f06b";} +.icon-leaf:before{content:"\f06c";} +.icon-fire:before{content:"\f06d";} +.icon-eye-open:before{content:"\f06e";} +.icon-eye-close:before{content:"\f070";} +.icon-warning-sign:before{content:"\f071";} +.icon-plane:before{content:"\f072";} +.icon-calendar:before{content:"\f073";} +.icon-random:before{content:"\f074";} +.icon-comment:before{content:"\f075";} +.icon-magnet:before{content:"\f076";} +.icon-chevron-up:before{content:"\f077";} +.icon-chevron-down:before{content:"\f078";} +.icon-retweet:before{content:"\f079";} +.icon-shopping-cart:before{content:"\f07a";} +.icon-folder-close:before{content:"\f07b";} +.icon-folder-open:before{content:"\f07c";} +.icon-resize-vertical:before{content:"\f07d";} +.icon-resize-horizontal:before{content:"\f07e";} +.icon-bar-chart:before{content:"\f080";} +.icon-twitter-sign:before{content:"\f081";} +.icon-facebook-sign:before{content:"\f082";} +.icon-camera-retro:before{content:"\f083";} +.icon-key:before{content:"\f084";} +.icon-gears:before,.icon-cogs:before{content:"\f085";} +.icon-comments:before{content:"\f086";} +.icon-thumbs-up-alt:before{content:"\f087";} +.icon-thumbs-down-alt:before{content:"\f088";} +.icon-star-half:before{content:"\f089";} +.icon-heart-empty:before{content:"\f08a";} +.icon-signout:before{content:"\f08b";} +.icon-linkedin-sign:before{content:"\f08c";} +.icon-pushpin:before{content:"\f08d";} +.icon-external-link:before{content:"\f08e";} +.icon-signin:before{content:"\f090";} +.icon-trophy:before{content:"\f091";} +.icon-github-sign:before{content:"\f092";} +.icon-upload-alt:before{content:"\f093";} +.icon-lemon:before{content:"\f094";} +.icon-phone:before{content:"\f095";} +.icon-unchecked:before,.icon-check-empty:before{content:"\f096";} +.icon-bookmark-empty:before{content:"\f097";} +.icon-phone-sign:before{content:"\f098";} +.icon-twitter:before{content:"\f099";} +.icon-facebook:before{content:"\f09a";} +.icon-github:before{content:"\f09b";} +.icon-unlock:before{content:"\f09c";} +.icon-credit-card:before{content:"\f09d";} +.icon-rss:before{content:"\f09e";} +.icon-hdd:before{content:"\f0a0";} +.icon-bullhorn:before{content:"\f0a1";} +.icon-bell:before{content:"\f0a2";} +.icon-certificate:before{content:"\f0a3";} +.icon-hand-right:before{content:"\f0a4";} +.icon-hand-left:before{content:"\f0a5";} +.icon-hand-up:before{content:"\f0a6";} +.icon-hand-down:before{content:"\f0a7";} +.icon-circle-arrow-left:before{content:"\f0a8";} +.icon-circle-arrow-right:before{content:"\f0a9";} +.icon-circle-arrow-up:before{content:"\f0aa";} +.icon-circle-arrow-down:before{content:"\f0ab";} +.icon-globe:before{content:"\f0ac";} +.icon-wrench:before{content:"\f0ad";} +.icon-tasks:before{content:"\f0ae";} +.icon-filter:before{content:"\f0b0";} +.icon-briefcase:before{content:"\f0b1";} +.icon-fullscreen:before{content:"\f0b2";} +.icon-group:before{content:"\f0c0";} +.icon-link:before{content:"\f0c1";} +.icon-cloud:before{content:"\f0c2";} +.icon-beaker:before{content:"\f0c3";} +.icon-cut:before{content:"\f0c4";} +.icon-copy:before{content:"\f0c5";} +.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";} +.icon-save:before{content:"\f0c7";} +.icon-sign-blank:before{content:"\f0c8";} +.icon-reorder:before{content:"\f0c9";} +.icon-list-ul:before{content:"\f0ca";} +.icon-list-ol:before{content:"\f0cb";} +.icon-strikethrough:before{content:"\f0cc";} +.icon-underline:before{content:"\f0cd";} +.icon-table:before{content:"\f0ce";} +.icon-magic:before{content:"\f0d0";} +.icon-truck:before{content:"\f0d1";} +.icon-pinterest:before{content:"\f0d2";} +.icon-pinterest-sign:before{content:"\f0d3";} +.icon-google-plus-sign:before{content:"\f0d4";} +.icon-google-plus:before{content:"\f0d5";} +.icon-money:before{content:"\f0d6";} +.icon-caret-down:before{content:"\f0d7";} +.icon-caret-up:before{content:"\f0d8";} +.icon-caret-left:before{content:"\f0d9";} +.icon-caret-right:before{content:"\f0da";} +.icon-columns:before{content:"\f0db";} +.icon-sort:before{content:"\f0dc";} +.icon-sort-down:before{content:"\f0dd";} +.icon-sort-up:before{content:"\f0de";} +.icon-envelope:before{content:"\f0e0";} +.icon-linkedin:before{content:"\f0e1";} +.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";} +.icon-legal:before{content:"\f0e3";} +.icon-dashboard:before{content:"\f0e4";} +.icon-comment-alt:before{content:"\f0e5";} +.icon-comments-alt:before{content:"\f0e6";} +.icon-bolt:before{content:"\f0e7";} +.icon-sitemap:before{content:"\f0e8";} +.icon-umbrella:before{content:"\f0e9";} +.icon-paste:before{content:"\f0ea";} +.icon-lightbulb:before{content:"\f0eb";} +.icon-exchange:before{content:"\f0ec";} +.icon-cloud-download:before{content:"\f0ed";} +.icon-cloud-upload:before{content:"\f0ee";} +.icon-user-md:before{content:"\f0f0";} +.icon-stethoscope:before{content:"\f0f1";} +.icon-suitcase:before{content:"\f0f2";} +.icon-bell-alt:before{content:"\f0f3";} +.icon-coffee:before{content:"\f0f4";} +.icon-food:before{content:"\f0f5";} +.icon-file-text-alt:before{content:"\f0f6";} +.icon-building:before{content:"\f0f7";} +.icon-hospital:before{content:"\f0f8";} +.icon-ambulance:before{content:"\f0f9";} +.icon-medkit:before{content:"\f0fa";} +.icon-fighter-jet:before{content:"\f0fb";} +.icon-beer:before{content:"\f0fc";} +.icon-h-sign:before{content:"\f0fd";} +.icon-plus-sign-alt:before{content:"\f0fe";} +.icon-double-angle-left:before{content:"\f100";} +.icon-double-angle-right:before{content:"\f101";} +.icon-double-angle-up:before{content:"\f102";} +.icon-double-angle-down:before{content:"\f103";} +.icon-angle-left:before{content:"\f104";} +.icon-angle-right:before{content:"\f105";} +.icon-angle-up:before{content:"\f106";} +.icon-angle-down:before{content:"\f107";} +.icon-desktop:before{content:"\f108";} +.icon-laptop:before{content:"\f109";} +.icon-tablet:before{content:"\f10a";} +.icon-mobile-phone:before{content:"\f10b";} +.icon-circle-blank:before{content:"\f10c";} +.icon-quote-left:before{content:"\f10d";} +.icon-quote-right:before{content:"\f10e";} +.icon-spinner:before{content:"\f110";} +.icon-circle:before{content:"\f111";} +.icon-mail-reply:before,.icon-reply:before{content:"\f112";} +.icon-github-alt:before{content:"\f113";} +.icon-folder-close-alt:before{content:"\f114";} +.icon-folder-open-alt:before{content:"\f115";} +.icon-expand-alt:before{content:"\f116";} +.icon-collapse-alt:before{content:"\f117";} +.icon-smile:before{content:"\f118";} +.icon-frown:before{content:"\f119";} +.icon-meh:before{content:"\f11a";} +.icon-gamepad:before{content:"\f11b";} +.icon-keyboard:before{content:"\f11c";} +.icon-flag-alt:before{content:"\f11d";} +.icon-flag-checkered:before{content:"\f11e";} +.icon-terminal:before{content:"\f120";} +.icon-code:before{content:"\f121";} +.icon-reply-all:before{content:"\f122";} +.icon-mail-reply-all:before{content:"\f122";} +.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";} +.icon-location-arrow:before{content:"\f124";} +.icon-crop:before{content:"\f125";} +.icon-code-fork:before{content:"\f126";} +.icon-unlink:before{content:"\f127";} +.icon-question:before{content:"\f128";} +.icon-info:before{content:"\f129";} +.icon-exclamation:before{content:"\f12a";} +.icon-superscript:before{content:"\f12b";} +.icon-subscript:before{content:"\f12c";} +.icon-eraser:before{content:"\f12d";} +.icon-puzzle-piece:before{content:"\f12e";} +.icon-microphone:before{content:"\f130";} +.icon-microphone-off:before{content:"\f131";} +.icon-shield:before{content:"\f132";} +.icon-calendar-empty:before{content:"\f133";} +.icon-fire-extinguisher:before{content:"\f134";} +.icon-rocket:before{content:"\f135";} +.icon-maxcdn:before{content:"\f136";} +.icon-chevron-sign-left:before{content:"\f137";} +.icon-chevron-sign-right:before{content:"\f138";} +.icon-chevron-sign-up:before{content:"\f139";} +.icon-chevron-sign-down:before{content:"\f13a";} +.icon-html5:before{content:"\f13b";} +.icon-css3:before{content:"\f13c";} +.icon-anchor:before{content:"\f13d";} +.icon-unlock-alt:before{content:"\f13e";} +.icon-bullseye:before{content:"\f140";} +.icon-ellipsis-horizontal:before{content:"\f141";} +.icon-ellipsis-vertical:before{content:"\f142";} +.icon-rss-sign:before{content:"\f143";} +.icon-play-sign:before{content:"\f144";} +.icon-ticket:before{content:"\f145";} +.icon-minus-sign-alt:before{content:"\f146";} +.icon-check-minus:before{content:"\f147";} +.icon-level-up:before{content:"\f148";} +.icon-level-down:before{content:"\f149";} +.icon-check-sign:before{content:"\f14a";} +.icon-edit-sign:before{content:"\f14b";} +.icon-external-link-sign:before{content:"\f14c";} +.icon-share-sign:before{content:"\f14d";} +.icon-compass:before{content:"\f14e";} +.icon-collapse:before{content:"\f150";} +.icon-collapse-top:before{content:"\f151";} +.icon-expand:before{content:"\f152";} +.icon-euro:before,.icon-eur:before{content:"\f153";} +.icon-gbp:before{content:"\f154";} +.icon-dollar:before,.icon-usd:before{content:"\f155";} +.icon-rupee:before,.icon-inr:before{content:"\f156";} +.icon-yen:before,.icon-jpy:before{content:"\f157";} +.icon-renminbi:before,.icon-cny:before{content:"\f158";} +.icon-won:before,.icon-krw:before{content:"\f159";} +.icon-bitcoin:before,.icon-btc:before{content:"\f15a";} +.icon-file:before{content:"\f15b";} +.icon-file-text:before{content:"\f15c";} +.icon-sort-by-alphabet:before{content:"\f15d";} +.icon-sort-by-alphabet-alt:before{content:"\f15e";} +.icon-sort-by-attributes:before{content:"\f160";} +.icon-sort-by-attributes-alt:before{content:"\f161";} +.icon-sort-by-order:before{content:"\f162";} +.icon-sort-by-order-alt:before{content:"\f163";} +.icon-thumbs-up:before{content:"\f164";} +.icon-thumbs-down:before{content:"\f165";} +.icon-youtube-sign:before{content:"\f166";} +.icon-youtube:before{content:"\f167";} +.icon-xing:before{content:"\f168";} +.icon-xing-sign:before{content:"\f169";} +.icon-youtube-play:before{content:"\f16a";} +.icon-dropbox:before{content:"\f16b";} +.icon-stackexchange:before{content:"\f16c";} +.icon-instagram:before{content:"\f16d";} +.icon-flickr:before{content:"\f16e";} +.icon-adn:before{content:"\f170";} +.icon-bitbucket:before{content:"\f171";} +.icon-bitbucket-sign:before{content:"\f172";} +.icon-tumblr:before{content:"\f173";} +.icon-tumblr-sign:before{content:"\f174";} +.icon-long-arrow-down:before{content:"\f175";} +.icon-long-arrow-up:before{content:"\f176";} +.icon-long-arrow-left:before{content:"\f177";} +.icon-long-arrow-right:before{content:"\f178";} +.icon-apple:before{content:"\f179";} +.icon-windows:before{content:"\f17a";} +.icon-android:before{content:"\f17b";} +.icon-linux:before{content:"\f17c";} +.icon-dribbble:before{content:"\f17d";} +.icon-skype:before{content:"\f17e";} +.icon-foursquare:before{content:"\f180";} +.icon-trello:before{content:"\f181";} +.icon-female:before{content:"\f182";} +.icon-male:before{content:"\f183";} +.icon-gittip:before{content:"\f184";} +.icon-sun:before{content:"\f185";} +.icon-moon:before{content:"\f186";} +.icon-archive:before{content:"\f187";} +.icon-bug:before{content:"\f188";} +.icon-vk:before{content:"\f189";} +.icon-weibo:before{content:"\f18a";} +.icon-renren:before{content:"\f18b";} +.icon-telegram:before { + content: "\f2c6"; } + +.icon-telegram-plane:before { + content: "\f3fe"; } diff --git a/theme/css/font-awesome.min.css.gz b/theme/css/font-awesome.min.css.gz index 96b2743..6489165 100644 Binary files a/theme/css/font-awesome.min.css.gz and b/theme/css/font-awesome.min.css.gz differ diff --git a/theme/css/github.css b/theme/css/github.css index 7bd4389..dc60655 100644 --- a/theme/css/github.css +++ b/theme/css/github.css @@ -1 +1,61 @@ -.hll{background-color:#ffc}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{color:#000;font-weight:bold}.o{color:#000;font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold;font-style:italic}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.ge{color:#000;font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:#aaa}.gt{color:#a00}.kc{color:#000;font-weight:bold}.kd{color:#000;font-weight:bold}.kn{color:#000;font-weight:bold}.kp{color:#000;font-weight:bold}.kr{color:#000;font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d01040}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:teal}.nd{color:#3c5d5d;font-weight:bold}.ni{color:purple}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nl{color:#900;font-weight:bold}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{color:#000;font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d01040}.sc{color:#d01040}.sd{color:#d01040}.s2{color:#d01040}.se{color:#d01040}.sh{color:#d01040}.si{color:#d01040}.sx{color:#d01040}.sr{color:#009926}.s1{color:#d01040}.ss{color:#990073}.bp{color:#999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#099} \ No newline at end of file +.hll { background-color: #ffffcc } +.c { color: #999988; font-style: italic } /* Comment */ +.err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.k { color: #000000; font-weight: bold } /* Keyword */ +.o { color: #000000; font-weight: bold } /* Operator */ +.cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */ +.c1 { color: #999988; font-style: italic } /* Comment.Single */ +.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.ge { color: #000000; font-style: italic } /* Generic.Emph */ +.gr { color: #aa0000 } /* Generic.Error */ +.gh { color: #999999 } /* Generic.Heading */ +.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.go { color: #888888 } /* Generic.Output */ +.gp { color: #555555 } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #aaaaaa } /* Generic.Subheading */ +.gt { color: #aa0000 } /* Generic.Traceback */ +.kc { color: #000000; font-weight: bold } /* Keyword.Constant */ +.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ +.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.m { color: #009999 } /* Literal.Number */ +.s { color: #d01040 } /* Literal.String */ +.na { color: #008080 } /* Name.Attribute */ +.nb { color: #0086B3 } /* Name.Builtin */ +.nc { color: #445588; font-weight: bold } /* Name.Class */ +.no { color: #008080 } /* Name.Constant */ +.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */ +.ni { color: #800080 } /* Name.Entity */ +.ne { color: #990000; font-weight: bold } /* Name.Exception */ +.nf { color: #990000; font-weight: bold } /* Name.Function */ +.nl { color: #990000; font-weight: bold } /* Name.Label */ +.nn { color: #555555 } /* Name.Namespace */ +.nt { color: #000080 } /* Name.Tag */ +.nv { color: #008080 } /* Name.Variable */ +.ow { color: #000000; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mf { color: #009999 } /* Literal.Number.Float */ +.mh { color: #009999 } /* Literal.Number.Hex */ +.mi { color: #009999 } /* Literal.Number.Integer */ +.mo { color: #009999 } /* Literal.Number.Oct */ +.sb { color: #d01040 } /* Literal.String.Backtick */ +.sc { color: #d01040 } /* Literal.String.Char */ +.sd { color: #d01040 } /* Literal.String.Doc */ +.s2 { color: #d01040 } /* Literal.String.Double */ +.se { color: #d01040 } /* Literal.String.Escape */ +.sh { color: #d01040 } /* Literal.String.Heredoc */ +.si { color: #d01040 } /* Literal.String.Interpol */ +.sx { color: #d01040 } /* Literal.String.Other */ +.sr { color: #009926 } /* Literal.String.Regex */ +.s1 { color: #d01040 } /* Literal.String.Single */ +.ss { color: #990073 } /* Literal.String.Symbol */ +.bp { color: #999999 } /* Name.Builtin.Pseudo */ +.vc { color: #008080 } /* Name.Variable.Class */ +.vg { color: #008080 } /* Name.Variable.Global */ +.vi { color: #008080 } /* Name.Variable.Instance */ +.il { color: #009999 } /* Literal.Number.Integer.Long */ diff --git a/theme/css/landing.css b/theme/css/landing.css index ab91656..024cb79 100644 --- a/theme/css/landing.css +++ b/theme/css/landing.css @@ -1 +1,63 @@ -body{background-color:#eee}#content-box{background:url("../img/stressed_linen/stressed_linen.png") repeat;padding:12px;margin:5% auto;color:#eee;font-family:"PT Sans",sans-serif;font-size:1.2em;border-bottom:2px solid #38c5c5}#intro-header{font-family:"Forum",sans-serif;text-align:center}#intro-header h1{font-size:3.5em;margin-top:12px;margin-bottom:12px}.centered-nav{text-align:center;padding:0}.centered-nav li{display:inline}.centered-nav a{-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;-o-transition:all .3s;transition:all .3s;display:inline-block;color:#eee;text-decoration:none}.centered-nav a:hover{color:#38c5c5;text-shadow:0 0 12px #8e927e}#nav-links{font-family:"Forum",sans-serif;font-size:1.8em}#nav-links a{margin:0 6px;padding:3px}#nav-services li{margin:6px}.svc-badge{font-size:36px;width:50px;display:inline-block}#contact-form{margin-left:5%;text-align:left}#contact-methods{margin-top:2em}#contact-methods li{margin:0 24px}#contact-methods li h3{margin:.3em 0} \ No newline at end of file +body { + background-color: #eeeeee; } + +#content-box { + background: url("../img/stressed_linen/stressed_linen.png") repeat; + padding: 12px; + margin: 5% auto; + color: #eeeeee; + font-family: "PT Sans", sans-serif; + font-size: 1.2em; + border-bottom: 2px solid #38c5c5; } + +#intro-header { + font-family: "Forum", sans-serif; + text-align: center; } + #intro-header h1 { + font-size: 3.5em; + margin-top: 12px; + margin-bottom: 12px; } + +.centered-nav { + text-align: center; + padding: 0; } + .centered-nav li { + display: inline; } + .centered-nav a { + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -ms-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; + display: inline-block; + color: #eeeeee; + text-decoration: none; } + .centered-nav a:hover { + color: #38c5c5; + text-shadow: 0 0 12px #8e927e; } + +#nav-links { + font-family: "Forum", sans-serif; + font-size: 1.8em; } + #nav-links a { + margin: 0 6px; + padding: 3px; } + +#nav-services li { + margin: 6px; } + +.svc-badge { + font-size: 36px; + width: 50px; + display: inline-block; } + +#contact-form { + margin-left: 5%; + text-align: left; } + +#contact-methods { + margin-top: 2em; } + #contact-methods li { + margin: 0 24px; } + #contact-methods li h3 { + margin: 0.3em 0; } diff --git a/theme/css/main.css b/theme/css/main.css index 770a8f6..ee1c48d 100644 --- a/theme/css/main.css +++ b/theme/css/main.css @@ -1 +1,248 @@ -html,button,input,select,textarea{color:#222}body{font-size:1em;line-height:1.4}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}img{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}#site-info{margin-top:1.5em;font-size:.7em;text-align:center;color:#38c5c5}#site-info a{color:#eee}.side-shadow{-webkit-box-shadow:3px 0 8px 0 #8e927e;-moz-box-shadow:3px 0 8px 0 #8e927e;box-shadow:3px 0 8px 0 #8e927e}.angle-shadow{-webkit-box-shadow:6px 6px 8px 3px #8e927e;-moz-box-shadow:6px 6px 8px 3px #8e927e;box-shadow:6px 6px 8px 3px #8e927e}.ir{background-color:transparent;border:0;overflow:hidden;*text-indent:-9999px}.ir:before{content:"";display:block;width:0;height:150%}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.clearfix{*zoom:1}@media print,(-o-min-device-pixel-ratio:5 /@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}} \ No newline at end of file +/* + * HTML5 Boilerplate + * + * What follows is the result of much research on cross-browser styling. + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, + * Kroc Camen, and the H5BP dev community and team. + */ +/* ========================================================================== + Base styles: opinionated defaults + ========================================================================== */ +html, +button, +input, +select, +textarea { + color: #222; } + +body { + font-size: 1em; + line-height: 1.4; } + +/* + * Remove text-shadow in selection highlight: h5bp.com/i + * These selection declarations have to be separate. + * Customize the background color to match your design. + */ +::-moz-selection { + background: #b3d4fc; + text-shadow: none; } + +::selection { + background: #b3d4fc; + text-shadow: none; } + +/* + * A better looking default horizontal rule + */ +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; } + +/* + * Remove the gap between images and the bottom of their containers: h5bp.com/i/440 + */ +img { + vertical-align: middle; } + +/* + * Remove default fieldset styles. + */ +fieldset { + border: 0; + margin: 0; + padding: 0; } + +/* + * Allow only vertical resizing of textareas. + */ +textarea { + resize: vertical; } + +/* ========================================================================== + Chrome Frame prompt + ========================================================================== */ +.chromeframe { + margin: 0.2em 0; + background: #ccc; + color: #000; + padding: 0.2em 0; } + +/* ========================================================================== + Author's custom styles + ========================================================================== */ +#site-info { + margin-top: 1.5em; + font-size: 0.7em; + text-align: center; + color: #38c5c5; } + #site-info a { + color: #eeeeee; } + +.side-shadow { + -webkit-box-shadow: 3px 0px 8px 0px #8e927e; + -moz-box-shadow: 3px 0px 8px 0px #8e927e; + box-shadow: 3px 0px 8px 0px #8e927e; } + +.angle-shadow { + -webkit-box-shadow: 6px 6px 8px 3px #8e927e; + -moz-box-shadow: 6px 6px 8px 3px #8e927e; + box-shadow: 6px 6px 8px 3px #8e927e; } + +/* ========================================================================== + Helper classes + ========================================================================== */ +/* + * Image replacement + */ +.ir { + background-color: transparent; + border: 0; + overflow: hidden; + /* IE 6/7 fallback */ + *text-indent: -9999px; } + +.ir:before { + content: ""; + display: block; + width: 0; + height: 150%; } + +/* + * Hide from both screenreaders and browsers: h5bp.com/u + */ +.hidden { + display: none !important; + visibility: hidden; } + +/* + * Hide only visually, but have it available for screenreaders: h5bp.com/v + */ +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +/* + * Extends the .visuallyhidden class to allow the element to be focusable + * when navigated to via the keyboard: h5bp.com/p + */ +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +/* + * Hide visually and from screenreaders, but maintain layout + */ +.invisible { + visibility: hidden; } + +/* + * Clearfix: contain floats + * + * For modern browsers + * 1. The space content is one way to avoid an Opera bug when the + * `contenteditable` attribute is included anywhere else in the document. + * Otherwise it causes space to appear at the top and bottom of elements + * that receive the `clearfix` class. + * 2. The use of `table` rather than `block` is only necessary if using + * `:before` to contain the top-margins of child elements. + */ +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ } + +.clearfix:after { + clear: both; } + +/* + * For IE 6/7 only + * Include this rule to trigger hasLayout and contain floats. + */ +.clearfix { + *zoom: 1; } + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + Theses examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ +@media only screen and (min-width: 35em) { + /* Style adjustments for viewports that meet the condition */ } +@media print, (-o-min-device-pixel-ratio: 5 / 4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { + /* Style adjustments for high resolution devices */ } +/* ========================================================================== + Print styles. + Inlined to avoid required HTTP connection: h5bp.com/r + ========================================================================== */ +@media print { + * { + background: transparent !important; + color: #000 !important; + /* Black prints faster: h5bp.com/s */ + box-shadow: none !important; + text-shadow: none !important; } + + a, + a:visited { + text-decoration: underline; } + + a[href]:after { + content: " (" attr(href) ")"; } + + abbr[title]:after { + content: " (" attr(title) ")"; } + + /* + * Don't show links for images, or javascript/internal links + */ + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + + thead { + display: table-header-group; + /* h5bp.com/t */ } + + tr, + img { + page-break-inside: avoid; } + + img { + max-width: 100% !important; } + + @page { + margin: 0.5cm; } + + p, + h2, + h3 { + orphans: 3; + widows: 3; } + + h2, + h3 { + page-break-after: avoid; } } diff --git a/theme/css/normalize.css b/theme/css/normalize.css index 143a55f..4d4d01d 100644 --- a/theme/css/normalize.css +++ b/theme/css/normalize.css @@ -1 +1,527 @@ -/*! normalize.css v1.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0} \ No newline at end of file +/*! normalize.css v1.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. + * Known issue: no IE 6 support. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using + * `em` units. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-size: 100%; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Address `font-family` inconsistency between `textarea` and other form + * elements. + */ + +html, +button, +input, +select, +textarea { + font-family: sans-serif; +} + +/** + * Address margins handled incorrectly in IE 6/7. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address font sizes and margins set differently in IE 6/7. + * Address font sizes within `section` and `article` in Firefox 4+, Safari 5, + * and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +h2 { + font-size: 1.5em; + margin: 0.83em 0; +} + +h3 { + font-size: 1.17em; + margin: 1em 0; +} + +h4 { + font-size: 1em; + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.67em; + margin: 2.33em 0; +} + +/** + * Address styling not present in IE 7/8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + * Known issue: no IE 6/7 normalization. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 6/7/8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address margins set differently in IE 6/7. + */ + +p, +pre { + margin: 1em 0; +} + +/** + * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Address CSS quotes not supported in IE 6/7. + */ + +q { + quotes: none; +} + +/** + * Address `quotes` property not supported in Safari 4. + */ + +q:before, +q:after { + content: ''; + content: none; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Lists + ========================================================================== */ + +/** + * Address margins set differently in IE 6/7. + */ + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +/** + * Address paddings set differently in IE 6/7. + */ + +menu, +ol, +ul { + padding: 0 0 0 40px; +} + +/** + * Correct list images handled incorrectly in IE 7. + */ + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. + * 2. Improve image quality when scaled in IE 7. + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Correct margin displayed oddly in IE 6/7. + */ + +form { + margin: 0; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct color not being inherited in IE 6/7/8/9. + * 2. Correct text not wrapping in Firefox 3. + * 3. Correct alignment displayed oddly in IE 6/7. + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + *margin-left: -7px; /* 3 */ +} + +/** + * 1. Correct font size not being inherited in all browsers. + * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, + * and Chrome. + * 3. Improve appearance and consistency in all browsers. + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/** + * Address Firefox 3+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * 4. Remove inner spacing in IE 7 without affecting normal text inputs. + * Known issue: inner spacing remains in IE 6. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ + *overflow: visible; /* 4 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to content-box in IE 8/9. + * 2. Remove excess padding in IE 8/9. + * 3. Remove excess padding in IE 7. + * Known issue: excess padding remains in IE 6. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 3+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 6/7/8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/theme/font/fontawesome-webfont.ttf b/theme/font/fontawesome-webfont.ttf old mode 100755 new mode 100644 index d365924..5b4eb6e Binary files a/theme/font/fontawesome-webfont.ttf and b/theme/font/fontawesome-webfont.ttf differ diff --git a/theme/font/fontawesome-webfont.ttf.gz b/theme/font/fontawesome-webfont.ttf.gz index 0ccb127..363592f 100644 Binary files a/theme/font/fontawesome-webfont.ttf.gz and b/theme/font/fontawesome-webfont.ttf.gz differ diff --git a/theme/font/fontawesome-webfont.woff b/theme/font/fontawesome-webfont.woff old mode 100755 new mode 100644 index b9bd17e..1c01fde Binary files a/theme/font/fontawesome-webfont.woff and b/theme/font/fontawesome-webfont.woff differ diff --git a/yandex_cbd77769bf47392d.html b/yandex_cbd77769bf47392d.html index 482a9ba..8ae00ae 100644 --- a/yandex_cbd77769bf47392d.html +++ b/yandex_cbd77769bf47392d.html @@ -1,6 +1 @@ - - - - - Verification: cbd77769bf47392d - \ No newline at end of file + Verification: cbd77769bf47392d \ No newline at end of file diff --git a/yandex_cbd77769bf47392d.html.gz b/yandex_cbd77769bf47392d.html.gz new file mode 100644 index 0000000..260c8e9 Binary files /dev/null and b/yandex_cbd77769bf47392d.html.gz differ