<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-1727917354328459690</atom:id><lastBuildDate>Thu, 31 Jul 2025 16:57:23 +0000</lastBuildDate><category>го</category><category>Всякое</category><category>Кино</category><category>Полезное</category><category>Интернет</category><category>Юмор</category><category>Киров</category><category>Книги</category><category>Игры</category><category>Быт</category><category>English</category><category>Django-python</category><category>Музыка</category><category>Здоровье</category><category>Самоконтроль</category><category>Акт_потребления</category><category>Инструкции</category><category>Linux</category><category>Python</category><category>Политика</category><category>Образование</category><category>Docker</category><category>Flask</category><category>Дети</category><category>Доминирование</category><title>БлогИлка</title><description>Лазарев Илья aka iLq.&#xa;Пишу про Го, Кино, Интернет и др.</description><link>http://ilqlazar.blogspot.com/</link><managingEditor>noreply@blogger.com (ilqlazar)</managingEditor><generator>Blogger</generator><openSearch:totalResults>654</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-2706140547416144469</guid><pubDate>Tue, 21 Aug 2018 05:52:00 +0000</pubDate><atom:updated>2018-08-21T08:52:28.055+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Python</category><title>Следующий месяц в python</title><description>&lt;div class=&quot;tr_bq&quot;&gt;
Понадобилось сделать определенные запросы в БД к множеству таблиц, в имени которых присутствует дата вида ГГГГММ.&lt;/div&gt;
&lt;br /&gt;
&lt;blockquote&gt;
START_YYYYMM = &#39;201501&#39;&lt;br /&gt;END_YYYYMM = &#39;201807&#39;&lt;br /&gt;date_cur = datetime.date(int(START_YYYYMM[:4]),int(START_YYYYMM[4:]),1)&lt;br /&gt;end_date = datetime.date(int(END_YYYYMM[:4]),int(END_YYYYMM[4:]),1)&lt;br /&gt;while date_cur &amp;lt; end_date:&lt;br /&gt;&amp;nbsp; &amp;nbsp; dc_ym = date_cur.strftime(&#39;%Y%m&#39;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; print(&#39;select * from log_session_1_%s;&#39; % dc_ym)&lt;br /&gt;&amp;nbsp; &amp;nbsp; try:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; date_cur = date_cur.replace(month=date_cur.month+1)&lt;br /&gt;&amp;nbsp; &amp;nbsp; except:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; date_cur = date_cur.replace(year=date_cur.year+1, month = 1)&lt;/blockquote&gt;
</description><link>http://ilqlazar.blogspot.com/2018/08/python.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-8098284717317512261</guid><pubDate>Fri, 27 Apr 2018 10:18:00 +0000</pubDate><atom:updated>2018-04-27T13:18:04.526+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Ломанные wi-fi роутеры</title><description>Кинули &lt;a href=&quot;https://3wifi.stascorp.com/map&quot;&gt;ссылку&lt;/a&gt; на сервис по поиску ломанных wi-fi роутеров.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSdfpPxggkJ5X70l-LtlTwmNTBbVlqZr0NO6brb6YFuxgEudQTPTSlaEKisPMGlVoSss6-ZRe3yYV3j5RNQblx0vsCPPDZ9nh-1KXjAPL48YzztgSbajUqIY7lfd7ZmKPES5ft0TNDKvM/s1600/%25D0%259A%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2-wi-fi.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;718&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSdfpPxggkJ5X70l-LtlTwmNTBbVlqZr0NO6brb6YFuxgEudQTPTSlaEKisPMGlVoSss6-ZRe3yYV3j5RNQblx0vsCPPDZ9nh-1KXjAPL48YzztgSbajUqIY7lfd7ZmKPES5ft0TNDKvM/s320/%25D0%259A%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2-wi-fi.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
Проверь - не поломан ли твой! Можно по карте пройтись, но есть и поиск по маку. Хотя если ты знаешь что такое mac-адрес, то скорее всего твой роутер не поломали.</description><link>http://ilqlazar.blogspot.com/2018/04/wi-fi.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSdfpPxggkJ5X70l-LtlTwmNTBbVlqZr0NO6brb6YFuxgEudQTPTSlaEKisPMGlVoSss6-ZRe3yYV3j5RNQblx0vsCPPDZ9nh-1KXjAPL48YzztgSbajUqIY7lfd7ZmKPES5ft0TNDKvM/s72-c/%25D0%259A%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2-wi-fi.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-7684511034454069845</guid><pubDate>Sun, 04 Mar 2018 08:56:00 +0000</pubDate><atom:updated>2018-03-04T11:56:32.819+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">English</category><category domain="http://www.blogger.com/atom/ns#">Flask</category><category domain="http://www.blogger.com/atom/ns#">Python</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Structuring (структурирование) a Flask Project</title><description>&lt;div class=&quot;tr_bq&quot;&gt;
Перевод статьи по методу Ильи Франка.&lt;/div&gt;
&lt;br /&gt;
Источник: &lt;a href=&quot;http://www.patricksoftwareblog.com/structuring-a-flask-project/&quot;&gt;ссылка&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;Structuring (структурирование) a Flask Project&lt;/b&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote&gt;
Introduction&lt;/blockquote&gt;
&lt;blockquote&gt;
Flask provides (предоставляет) such (такую) great (большую) flexibility (гибкость) when (когда/при) developing a web application, including (включая) the structure of the application. Flask applications can range (варьироваться) from (от) a single file to (к) larger (более крупным) projects with multiple Blueprints (дословно: &quot;эскиз&quot;. используется для разделения приложения на части). In this blog post, I’m going to (собираюсь) describe (описать) how I like (как мне нравится) to structure (структурировать) a Flask application using (используя) Blueprints and an Application Factory function.&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote&gt;
For reference (для справки), the project that (который) I created (создал) as part (как часть) of writing (написанного) this blog post is available (доступен) on GitLab: Flask User Management Example.&lt;/blockquote&gt;
&lt;b&gt;Structuring a Flask Project&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Introduction&lt;br /&gt;
&lt;br /&gt;
Flask provides such great flexibility when developing a web application, including the structure of the application. Flask applications can range from a single file to larger projects with multiple Blueprints. In this blog post, I’m going to describe how I like to structure a Flask application using Blueprints and an Application Factory function.&lt;br /&gt;
&lt;br /&gt;
For reference, the project that I created as part of writing this blog post is available on GitLab: Flask User Management Example.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;Blueprints&lt;/b&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote&gt;
Blueprints allow (позволяют) you to cleanly (четко) organize (организовать) the source code (исходный код/исходники) of your Flask application. Each (каждый) Blueprint encapsulates (инкапсулирует) a significant (значительную) piece of functionality (функциональности) in your application. For example (например), I like (мне нравится) to have (иметь) a separate (отдельный) Blueprint for handling (обработки) the user management (управления пользователями) of a Flask application.&lt;/blockquote&gt;
&lt;blockquote&gt;
I like to create a separate (отдельный) package (пакет) (ie. (т.е.) a directory that includes the __init__.py file) for each Blueprint. For example, here is the structure of the Flask User Management example that contains (содержит) two Blueprints (recipes (рецепты) and users):&lt;/blockquote&gt;
(venv) $ tree -L 5&lt;br /&gt;
.&lt;br /&gt;
├── README.md&lt;br /&gt;
├── instance&lt;br /&gt;
├── main.py&lt;br /&gt;
├── project&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;├── __init__.py&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;├── models.py&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;├── recipes&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;│&amp;nbsp; &amp;nbsp;├── __init__.py&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;│&amp;nbsp; &amp;nbsp;├── routes.py&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;│&amp;nbsp; &amp;nbsp;└── templates&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└── recipes&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└── index.html&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;├── templates&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;│&amp;nbsp; &amp;nbsp;└── base.html&lt;br /&gt;
│&amp;nbsp; &amp;nbsp;└── users&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── __init__.py&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── forms.py&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── routes.py&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└── templates&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└── users&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── login.html&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── profile.html&lt;br /&gt;
│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└── register.html&lt;br /&gt;
├── requirements.txt&lt;br /&gt;
└── venv&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ├── bin&lt;br /&gt;
&amp;nbsp; &amp;nbsp; │&amp;nbsp; &amp;nbsp;├── activate&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; ├── ...&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Taking a look (взглянем) at a single (отдельный) Blueprint (users), it encapsulates (инкапсулирует) all of components to handle the user management aspects (аспекты) of the application (defining routes (определение маршрутов / определение url&#39;ов), handling forms (обработка форм), generating templates (генерация шаблонов)):&lt;/blockquote&gt;
&lt;br /&gt;
Taking a look at a single Blueprint (users), it encapsulates all of components to handle the user management aspects of the application (defining routes, handling forms, generating templates):&lt;br /&gt;
&lt;br /&gt;
users&lt;br /&gt;
├── __init__.py&lt;br /&gt;
├── forms.py&lt;br /&gt;
├── routes.py&lt;br /&gt;
└── templates&lt;br /&gt;
&amp;nbsp; &amp;nbsp; └── users&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── login.html&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── profile.html&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; └── register.html&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
The subfolders (вложенные папки) for storing (для хранения) the template files may look (выглядеть) strange (странно), but this structure (…/blueprint_name/templates/blueprint_name/) is recommended (рекомендована) in the Flask documentation. The template directory for each Blueprint gets added (добавляется) to the search path (к пути поиска) for template files within (в) your Flask application. With this structure, you can define the templates for each Blueprint within the Blueprint, but still (при этом) import (импортировать) a base (базовый) template (in …/project/templates/) that gets (будет) shared (использоватья) by all (всеми) the Blueprints. With this structure, the template file for a Blueprint can be accessed (получить) using ‘users/login.html’.&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
In order to (чтобы) create the Blueprint, an object of the Blueprint class (объет класса Blueprint) gets instantiated (создаем экземпляр) in the __init__.py file of the Blueprint folder:&lt;/blockquote&gt;
The subfolders for storing the template files may look strange, but this structure (…/blueprint_name/templates/blueprint_name/) is recommended in the Flask documentation. The template directory for each Blueprint gets added to the search path for template files within your Flask application. With this structure, you can define the templates for each Blueprint within the Blueprint, but still import a base template (in …/project/templates/) that gets shared by all the Blueprints. With this structure, the template file for a Blueprint can be accessed using ‘users/login.html’.&lt;br /&gt;
&lt;br /&gt;
In order to create the Blueprint, an object of the Blueprint class gets instantiated in the __init__.py file of the Blueprint folder:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&quot;&quot;&quot;&lt;br /&gt;The users Blueprint handles the user management for this application.&lt;br /&gt;Specifically, this Blueprint allows for new users to register and for&lt;br /&gt;users to log in and to log out of the application.&lt;br /&gt;&quot;&quot;&quot;&lt;br /&gt;from flask import Blueprint&lt;br /&gt;users_blueprint = Blueprint(&#39;users&#39;, __name__, template_folder=&#39;templates&#39;)&lt;br /&gt;from . import routes&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
This instantiation (экземпляр) of the Blueprint specifies(определяет/указывает) the name of the Blueprint (users) and it specifies (определяет) the location (местоположение) of the template files within the Blueprint. Additionally (кроме того), the last line (последняя строка) imports (импортирует) the routes (маршруты) created (созданные) in routes.py.&lt;/blockquote&gt;
This instantiation of the Blueprint specifies the name of the Blueprint (users) and it specifies the location of the template files within the Blueprint. Additionally, the last line imports the routes created in routes.py.&lt;br /&gt;
&lt;br /&gt;
The users_blueprint that was created in __init__.py is then imported in the routes.py file:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
#################&lt;br /&gt;#### imports ####&lt;br /&gt;#################&lt;br /&gt;from . import users_blueprint&lt;/blockquote&gt;
&lt;br /&gt;
This import allows the routes that are being created in routes.py to be specified with ‘@users_blueprint’:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
################&lt;br /&gt;#### routes ####&lt;br /&gt;################&lt;br /&gt;@users_blueprint.route(&#39;/&#39;)&lt;br /&gt;def index():&lt;br /&gt;&amp;nbsp; &amp;nbsp; return render_template(&#39;index.html&#39;)&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
After creating a Blueprint (and registering it (и его регистрации)), you can check (проверить) that the routes are being created (создаются) successfully (успешно) by checking (проверяя) the mapping (сопоставления) of the URLs to specific functions. The best way (способ) to see this is to bring up (вызвать) the Python interpreter (интерпретатор) with the key Flask components loaded (загруженных) using flask shell (оболочки) :&lt;/blockquote&gt;
After creating a Blueprint (and registering it), you can check that the routes are being created successfully by checking the mapping of the URLs to specific functions. The best way to see this is to bring up the Python interpreter with the key Flask components loaded using flask shell:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
(venv) $ flask shell&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; print(app.url_map)&lt;br /&gt;Map([&lt;rule -=&quot;&quot; get=&quot;&quot; head=&quot;&quot; post=&quot;&quot; register=&quot;&quot;&gt; users.register&amp;gt;,&lt;br /&gt;&amp;nbsp;&lt;rule -=&quot;&quot; get=&quot;&quot; head=&quot;&quot; profile=&quot;&quot;&gt; users.profile&amp;gt;,&lt;br /&gt;&amp;nbsp;&lt;rule -=&quot;&quot; get=&quot;&quot; head=&quot;&quot; logout=&quot;&quot;&gt; users.logout&amp;gt;,&lt;br /&gt;&amp;nbsp;&lt;rule -=&quot;&quot; get=&quot;&quot; head=&quot;&quot; login=&quot;&quot; post=&quot;&quot;&gt; users.login&amp;gt;,&lt;br /&gt;&amp;nbsp;&lt;rule -=&quot;&quot; get=&quot;&quot; head=&quot;&quot;&gt; recipes.index&amp;gt;,&lt;br /&gt;&amp;nbsp;&lt;rule filename=&quot;&quot; static=&quot;&quot;&gt;&#39; (OPTIONS, HEAD, GET) -&amp;gt; static&amp;gt;])&lt;/rule&gt;&lt;/rule&gt;&lt;/rule&gt;&lt;/rule&gt;&lt;/rule&gt;&lt;/rule&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
This shows (видно) that the URLs are being mapped (отображаются) correctly (правильно) to the functions in the Blueprints.&lt;/blockquote&gt;
&amp;nbsp;This shows that the URLs are being mapped correctly to the functions in the Blueprints.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Application Factory (Завод-изготовитель ;) )&lt;/b&gt;&lt;br /&gt;The initialization (инициализация) of a Flask project requires (требует) the following steps:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Creating the Flask application as an instance (экземпляр объекта) of the Flask class&lt;/li&gt;
&lt;li&gt;Configuring the Flask application&lt;/li&gt;
&lt;li&gt;Initializing the extensions (расширений) to be used (для использования / которые будут использованы)&lt;/li&gt;
&lt;li&gt;Registering the Blueprints in the project&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;b&gt;Application Factory&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
The initialization of a Flask project requires the following steps:&lt;br /&gt;
&lt;br /&gt;
Creating the Flask application as an instance of the Flask class&lt;br /&gt;
Configuring the Flask application&lt;br /&gt;
Initializing the extensions to be used&lt;br /&gt;
Registering the Blueprints in the project&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
These steps can be put together (положены вместе / объединены) in a single function called (называемую) an Application Factory function (an implementation of the Factory method pattern). In addition (кроме того) to making it clear (выяснить / понять) what steps need to be taken (предпринять) to initialize a Flask application, the Application Factory function allows different (различные) Flask applications to be created with different configurations. This flexibility becomes (становится) very useful (полезной) during (во время) testing, where the configuration can often be different (отличаться) from development or production.&lt;/blockquote&gt;
&lt;br /&gt;
These steps can be put together in a single function called an Application Factory function (an implementation of the Factory method pattern). In addition to making it clear what steps need to be taken to initialize a Flask application, the Application Factory function allows different Flask applications to be created with different configurations. This flexibility becomes very useful during testing, where the configuration can often be different from development or production.&lt;br /&gt;
&lt;br /&gt;
The Application Factory function is created in the …/project/__init__.py file. To start, import all of the modules (including the Flask extensions) that are needed for the Flask project:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
from flask import Flask&lt;br /&gt;from flask_sqlalchemy import SQLAlchemy&lt;br /&gt;from flask_login import LoginManager&lt;br /&gt;from flask_bcrypt import Bcrypt&lt;/blockquote&gt;
&lt;br /&gt;
Next (далее), create the instances of each of the Flask extensions without initializing them:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
#######################&lt;br /&gt;#### Configuration ####&lt;br /&gt;#######################&lt;br /&gt;# Create the instances of the Flask extensions (flask-sqlalchemy, flask-login, etc.) in&lt;br /&gt;# the global scope, but without any arguments passed in. These instances are not attached&lt;br /&gt;# to the application at this point.&lt;br /&gt;# Create the instances of the Flask extensions (flask-sqlalchemy, flask-login, etc.) in&lt;br /&gt;# the global scope (область видимости), but without (без) any arguments passed in (передачи). These instances (эти экземпляры)&lt;br /&gt;# are not attached (не прилагаются) to the application at this point (в данный момент).&lt;br /&gt;db = SQLAlchemy()&lt;br /&gt;bcrypt = Bcrypt()&lt;br /&gt;login = LoginManager()&lt;br /&gt;login.login_view = &quot;users.login&quot;&lt;/blockquote&gt;
&lt;br /&gt;
Next, the actual Application Factory function (create_app) is defined (определяется):&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
######################################&lt;br /&gt;#### Application Factory Function ####&lt;br /&gt;######################################&lt;br /&gt;def create_app(config_filename=None):&lt;br /&gt;&amp;nbsp; app = Flask(__name__, instance_relative_config=True)&lt;br /&gt;&amp;nbsp; app.config.from_pyfile(config_filename)&lt;br /&gt;&amp;nbsp; initialize_extensions(app)&lt;br /&gt;&amp;nbsp; register_blueprints(app)&lt;br /&gt;&amp;nbsp; return app&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
The function to initialize (для инициализации) each Flask extension (расширения) passes in (проходит в) the Flask application to each extension:&lt;/blockquote&gt;
The function to initialize each Flask extension passes in the Flask application to each extension:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
def initialize_extensions(app):&lt;br /&gt;&amp;nbsp; # Since the application instance is now created, pass it to each Flask&lt;br /&gt;&amp;nbsp; # extension instance to bind it to the Flask application instance (app)&lt;br /&gt;&amp;nbsp; db.init_app(app)&lt;br /&gt;&amp;nbsp; bcrypt.init_app(app)&lt;br /&gt;&amp;nbsp; login.init_app(app)&lt;br /&gt;&amp;nbsp; ...&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Finally (в конце), all of the Blueprints are registered (зарегистрированы) with the Flask application:&lt;/blockquote&gt;
&lt;br /&gt;
Finally, all of the Blueprints are registered with the Flask application:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
def register_blueprints(app):&lt;br /&gt;&amp;nbsp; # Since (поскольку) the application instance is now created, register each Blueprint&lt;br /&gt;&amp;nbsp; # with the Flask application instance (app)&lt;br /&gt;&amp;nbsp; from project.recipes import recipes_blueprint&lt;br /&gt;&amp;nbsp; from project.users import users_blueprint&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; app.register_blueprint(recipes_blueprint)&lt;br /&gt;&amp;nbsp; app.register_blueprint(users_blueprint)&lt;/blockquote&gt;
&lt;br /&gt;
After creating the Application Factory function, it gets used in the …/main.py file:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
from project import create_app&lt;br /&gt;# Call the Application Factory function to construct a Flask application instance&lt;br /&gt;# using the standard configuration defined in /instance/flask.cfg&lt;br /&gt;app = create_app(&#39;flask.cfg&#39;)&lt;/blockquote&gt;
&lt;br /&gt;
Now the Flask application is ready to run using:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
(venv) $ export FLASK_APP=main.py&lt;br /&gt;(venv) $ flask run&lt;br /&gt;* Serving Flask app &quot;main&quot;&lt;br /&gt;* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Overall Structure (общая структура)&lt;/b&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
The overall structure for this project is shown (показана) below (ниже):&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Overall Structure&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The overall structure for this project is shown below :&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
(venv) $ tree -L 3&lt;br /&gt;.&lt;br /&gt;├── README.md&lt;br /&gt;├── instance&lt;br /&gt;├── main.py&lt;br /&gt;├── project&lt;br /&gt;│ ├── __init__.py&lt;br /&gt;│ ├── models.py&lt;br /&gt;│ ├── recipes&lt;br /&gt;│ │ ├── __init__.py&lt;br /&gt;│ │ ├── routes.py&lt;br /&gt;│ │ └── templates&lt;br /&gt;│ ├── templates&lt;br /&gt;│ │ └── base.html&lt;br /&gt;│ └── users&lt;br /&gt;│ ├── __init__.py&lt;br /&gt;│ ├── forms.py&lt;br /&gt;│ ├── routes.py&lt;br /&gt;│ └── templates&lt;br /&gt;├── requirements.txt&lt;br /&gt;└── venv&lt;br /&gt;&amp;nbsp; ├── bin&lt;br /&gt;&amp;nbsp; ├── ...&lt;/blockquote&gt;
The Blueprints are defined in separate modules in the …/project folder. The Application Factory function is defined in the …/project/__init__.py file. The actual Flask application is then created in …/main.py.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Conclusion (вывод)&lt;/b&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
This blog post described (описывает) how to use Blueprints and an Application Factory function to help structure a Flask project. Blueprints provide (предоставляют) a great tool (отличный инструмент) to organize your project into major (основные) pieces (части) of functionality (функционала). An Application Factory function provides a clean method for creating the Flask application. Put together (в совокупности), these are the two primary (первичные/основные) ideas that I use to structure a Flask project.&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This blog post described how to use Blueprints and an Application Factory function to help structure a Flask project. Blueprints provide a great tool to organize your project into major pieces of functionality. An Application Factory function provides a clean method for creating the Flask application. Put together, these are the two primary ideas that I use to structure a Flask project.</description><link>http://ilqlazar.blogspot.com/2018/03/structuring-flask-project.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-4551644849317552049</guid><pubDate>Thu, 22 Feb 2018 08:59:00 +0000</pubDate><atom:updated>2018-03-04T11:58:01.030+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Docker</category><category domain="http://www.blogger.com/atom/ns#">English</category><category domain="http://www.blogger.com/atom/ns#">Python</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Пошаговое руководство: среда разработки Django с Docker</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blog.devartis.com/django-development-environment-with-docker-a-step-by-step-guide-ae234612fa61?gi=afab5d50049e&quot;&gt;Источник&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;Перевод по методу Ильи Франка. Сначала часть текста с вставками-переводами, потом без перевода.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Django development (разработка) environment (окружение/среда) (среда разработки) with Docker — A step by step (шаг за шагом) guide (руководство) (пошаговое руководство).&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Django development environment with Docker — A step by step guide&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;About Docker&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Docker is the software development and devops (&quot;development и operations&quot; - &lt;a href=&quot;https://ru.wikipedia.org/wiki/DevOps&quot;&gt;девопс&lt;/a&gt;) tool (инструмент) everyone wants to use for their (своих) projects. It’s a platform that allows (позволит) you to easily create isolated (изолированное) environments (aka Containers - так называемые Контейнеры) that can run specific pieces (определенные части) of software. In other words (другими словами), it provides (предоставит) a lightweight (легкий) mechanism to “virtualize” environments in a host computer (&lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A5%D0%BE%D1%81%D1%82&quot;&gt;хост&lt;/a&gt;).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; is the software development and devops tool everyone wants to use for their projects. It’s a platform that allows you to easily create isolated environments (aka Containers) that can run specific pieces of software. In other words, it provides a lightweight mechanism to “virtualize” environments in a host computer.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is a very powerful (мощный) tool for development since (поскольку) it simplifies (упрощает) the process of configuring (конфигурирования) and setting up (создания) environments or switching (переключения) between completely (полностью/совершенно) different projects in the same (в одном и том же) development box (боксе(?) разработки). But, most importantly (самое главное), it allows developers (разработчикам) to consistently (последовательно) reproduce (воспроизводить) production (производственные) environments and avoid (избегать) problems due to (due - в связи, due to - из-за) configuration differences (различий в конфигурации).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is a very powerful tool for development since it simplifies the process of configuring and setting up environments or switching between completely different projects in the same development box. But, most importantly, it allows developers to consistently reproduce production environments and avoid problems due to configuration differences.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Particularly (в частности) in Django there are (есть/существуют) some (некоторые) common (общие/распространенные) errors that can arise (возникать) with (при) the default settings configuration (настройках по умолчанию) and their differences with a typical (типичный) production deployment (деплой/развертывание ПО). When using (когда используется/при использовании) SQLite as a development database (в качестве БД разработки), which lacks (не хватает/отсутствует) DDL constraints (ограничения), you can encounter (столкнуться) some (некоторыми) migrations failing (проавалами/неудачными миграции) in production (продакшн: стадия использования продукта клиентом) even if you were able (в состоянии) to run (запустить) them perfectly (прекрасно) on your local environment. Another (другой) common source (источник) of problems can be the difference between serving (обслуживание/предоставление) static files using the &lt;i&gt;runserver&lt;/i&gt; command and the existence (наличие) of a Web server with a reverse proxy (обратный прокси-сервер) in production. Also (кроме того), if you use Memcached in production you might not be able to reproduce (воспроизвести) invalidation errors (недействительные(?) ошибки), and so on (и т.д.).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Particularly in &lt;a href=&quot;https://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt; there are some common errors that can arise with the default settings configuration and their differences with a typical production deployment. When using &lt;a href=&quot;https://www.sqlite.org/&quot;&gt;SQLite&lt;/a&gt; as a development database, which lacks DDL constraints, you can encounter some migrations failing in production even if you were able to run them perfectly on your local environment. Another common source of problems can be the difference between serving static files using the &lt;i&gt;runserver&lt;/i&gt; command and the existence of a Web server with a reverse proxy in production. Also, if you use Memcached in production you might not be able to reproduce invalidation errors, and so on.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The advisable (желательно) thing to do would be to configure your development box exactly as (exactly as - точно так же как) the production environment, but switching between projects wouldn’t be (было бы не) that easy and you don’t want to have all the services running while doing other tasks. That’s where (именно здесь) virtualization becomes (становится) handy (удобной).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The advisable thing to do would be to configure your development box exactly as the production environment, but switching between projects wouldn’t be that easy and you don’t want to have all the services running while doing other tasks. That’s where virtualization becomes handy.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Using Docker for development&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
As an example (для примера) we are going (собираемся) to go through (через) the process of creating a Django application (приложения) from scratch (from scratch - с нуля) as setting up (создание) two of the most (наиболее) common (распространенных) external (внешних) services you would use in production; MySQL and NGINX.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
As an example we are going to go through the process of creating a Django application from scratch as setting up two of the most common external services you would use in production; &lt;a href=&quot;https://www.mysql.com/&quot;&gt;MySQL&lt;/a&gt; and &lt;a href=&quot;https://nginx.org/&quot;&gt;NGINX&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Create a Django project&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
First (сначала) we create an empty virtual environment (виртуальное окружение) and initialize (инициализируем/создадим) our Django project.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
First we create an empty virtual environment and initialize our Django project.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ mkvirtualenv djangodocker&lt;br /&gt;
$ pip install django&lt;br /&gt;
$ django-admin startproject djangodocker&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;MySQL&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In order to (чтобы) use MySQL instead (вместо) of SQLite we are going to edit the default settings.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In order to use MySQL instead of SQLite we are going to edit the default settings.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ vim djangodocker/settings.py&lt;br /&gt;
# replace your default DATABASES section for this one&lt;br /&gt;
DATABASES = {&lt;br /&gt;
&amp;nbsp; &#39;default&#39;: {&lt;br /&gt;
&amp;nbsp; &#39;ENGINE&#39;: &#39;django.db.backends.mysql&#39;,&lt;br /&gt;
&amp;nbsp; &#39;NAME&#39;: &#39;djangodocker_db&#39;,&lt;br /&gt;
&amp;nbsp; &#39;USER&#39;: &#39;root&#39;,&lt;br /&gt;
&amp;nbsp; &#39;PASSWORD&#39;: &#39;root&#39;,&lt;br /&gt;
&amp;nbsp; &#39;HOST&#39;: &#39;127.0.0.1&#39;, # Or an IP Address that your DB is hosted on&lt;br /&gt;
&amp;nbsp; &#39;PORT&#39;: &#39;3306&#39;,&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Add (добавим) the Python driver and attempt (попытаемся) to run migrations.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Add the Python driver and attempt to run migrations.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ pip install MySQL-python&lt;br /&gt;
$ python manage.py migrate&lt;br /&gt;
django.db.utils.OperationalError: (2002, &quot;Can&#39;t connect to local MySQL server through socket &#39;/var/run/mysqld/mysqld.sock&#39; (2)&quot;)&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Naturally (натурально/естественно), the connection to MySQL fails (не удалось) since (поскольку) we aren’t running (не запустили) any (какой-либо) server locally. Instead of installing it in your OS as you normally would (как вы обычно делаете) we are going to run a Container with a MySQL installation inside it (с установленным MySQL внутри). Luckily (к счастью) Docker has a public hub which hosts (размещается) lots (множество) of Container images (образов) with the most (самыми) popular services. The one that (один из которых) includes a MySQL installation is called (называется) &lt;i&gt;mysql&lt;/i&gt; and we are going to start it with the command &lt;i&gt;docker run&lt;/i&gt;. We are also passing (передаем) the &lt;i&gt;-p&lt;/i&gt; parameter to expose (выставить/открыть) the Port 3306 outside (вне) the container, and also (также) a database name with a root password.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Naturally, the connection to MySQL fails since we aren’t running any server locally. Instead of installing it in your OS as you normally would we are going to run a Container with a MySQL installation inside it. Luckily Docker has a &lt;a href=&quot;https://hub.docker.com/&quot;&gt;public hub&lt;/a&gt; which hosts lots of Container images with the most popular services. The one that includes a MySQL installation is called &lt;i&gt;&lt;a href=&quot;https://hub.docker.com/_/mysql/&quot;&gt;mysql&lt;/a&gt;&lt;/i&gt; and we are going to start it with the command &lt;i&gt;docker run&lt;/i&gt;. We are also passing the &lt;i&gt;-p&lt;/i&gt; parameter to expose the Port 3306 outside the container, and also a database name with a root password.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
$ docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=djangodocker_db mysql&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
$ mysql -h127.0.0.1 -proot -uroot&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
mysql&amp;gt; show DATABASES;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
$ python manage.py migrate&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can now check (проверить) that your migrations run and your database is correctly initialized. But what happens if you run the Container again (снова)?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can now check that your migrations run and your database is correctly initialized. But what happens if you run the Container again?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
$ docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=djangodocker_db mysql&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
$ python manage.py migrate&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You’ll see that migrations are lost (потеряны) and you need (нужно) to execute (запустить) them again. This is because (это потому что/это связано с тем, что) &lt;i&gt;run&lt;/i&gt; command &lt;i&gt;creates&lt;/i&gt; and &lt;i&gt;starts&lt;/i&gt; a Container in the same action (в одном действии), so (поэтому) every time (каждый раз) you use &lt;i&gt;run&lt;/i&gt; you are actually (фактически) creating a new Container from scratch (с нуля). In order to (In order to - чтобы) reuse (повторно использовать) the same (тот же) image (образ) with persisted (сохраненными) data (данными), first you need to find out (find out - узнать) the image name and then you can use the start command.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You’ll see that migrations are lost and you need to execute them again. This is because &lt;i&gt;run&lt;/i&gt; command &lt;i&gt;creates&lt;/i&gt; and &lt;i&gt;starts&lt;/i&gt; a Container in the same action, so every time you use &lt;i&gt;run&lt;/i&gt; you are actually creating a new Container from scratch. In order to reuse the same image with persisted data, first you need to find out the image name and then you can use the start command.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ docker container ls --all&lt;br /&gt;
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES&lt;br /&gt;
61f76cdccfd3 mysql &quot;docker-entrypoint...&quot; 7 minutes ago Exited (0) 4 seconds ago 0.0.0.0:3306-&amp;gt;3306/tcp flamboyant_wozniak&lt;br /&gt;
$ docker start flamboyant_wozniak&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;NGINX&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Similarly (аналогично), we are going to follow (следовать) the same process to launch a Container with an NGINX server running. The image we will be using is called nginx and you are encouraged (поощряетесь/рекомендуется) to check the documentation in the Hub page.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Similarly, we are going to follow the same process to launch a Container with an NGINX server running. The image we will be using is called nginx and you are encouraged to &lt;a href=&quot;https://hub.docker.com/_/nginx/&quot;&gt;check the documentation in the Hub page&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The configuration file we are going to use for our basic application will look like this.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The configuration file we are going to use for our basic (основного) application will look (выглядеть) like this (как-то так/следующим образом).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
upstream django_server {&lt;br /&gt;
&amp;nbsp;server 127.0.0.1:8001 fail_timeout=0;&lt;br /&gt;
}&lt;br /&gt;
server {&lt;br /&gt;
&amp;nbsp;listen 80;&lt;br /&gt;
&amp;nbsp;client_max_body_size 4G;&lt;br /&gt;
&amp;nbsp;server_name localhost;&lt;br /&gt;
&amp;nbsp;keepalive_timeout 5;&lt;br /&gt;
&amp;nbsp;location /static/ {&lt;br /&gt;
&amp;nbsp; root /usr/share/nginx/djangodocker/;&lt;br /&gt;
&amp;nbsp; expires 30d;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;location / {&lt;br /&gt;
&amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
&amp;nbsp; proxy_set_header Host $http_host;&lt;br /&gt;
&amp;nbsp; proxy_redirect off;&lt;br /&gt;
&amp;nbsp; if (!-f $request_filename) {&lt;br /&gt;
&amp;nbsp; proxy_pass http://django_server;&lt;br /&gt;
&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
}&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In order to use this file from the container we are going to create it on our project directory and map (отобразить) it as a Data Volume. Data Volumes are a way (способ) to share (обмена) files between the host and the Container context. That way (таким образом) you can destroy and create new Containers that use those files while keeping (сохраняя) them intact (неповрежденными).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In order to use this file from the container we are going to create it on our project directory and map it as a &lt;a href=&quot;https://docs.docker.com/engine/tutorials/dockervolumes/&quot;&gt;Data Volume&lt;/a&gt;. Data Volumes are a way to share files between the host and the Container context. That way you can destroy and create new Containers that use those files while keeping them intact.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ vim nginx.conf&lt;br /&gt;
$ docker run -v /home/fernando/djangodocker/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can now run your Django application locally making sure (making sure - убедившись) you expose (показываете/открыли) the development server to external (внешним) requests (запросам) and on the port 8001.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can now run your Django application locally making sure you expose the development server to external requests and on the port 8001.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ python manage.py runserver 0.0.0.0:8001&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But when you browse (перейдете) to http://localhost/ you’ll see a Bad Request response (ответ), something (что-то) in the reverse proxy (в обратном прокси сервере) configuration is failing (не удалось). That’s because (связано с тем) the Docker Container &lt;i&gt;localhost&lt;/i&gt; IP refers (относится) to the Container itself (самому Контейнеру) and not to the outside host (а не к внешнему хосту) which is running the Python process. In order to make the configuration work we’ll need to find the IP address of our host from inside (изнутри) the network of the container. To do that we are going to run an interactive shell (интерактивную оболочку/командную строку) on the NGINX Container and use the &lt;i&gt;route&lt;/i&gt; command to get (получить) the host IP.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But when you browse to http://localhost/ you’ll see a Bad Request response, something in the reverse proxy configuration is failing. That’s because the Docker Container &lt;i&gt;localhost&lt;/i&gt; IP refers to the Container itself and not to the outside host which is running the Python process. In order to make the configuration work we’ll need to find the IP address of our host from inside the network of the container. To do that we are going to run an interactive shell on the NGINX Container and use the &lt;i&gt;route&lt;/i&gt; command to get the host IP.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ docker container exec -it distracted_kare /bin/bash&lt;br /&gt;
# apt update&lt;br /&gt;
# apt install net-tools&lt;br /&gt;
# route | awk ‘/^default/ { print $2 }’&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now update (обновим) the &lt;i&gt;nginx.conf&lt;/i&gt; file to use that IP address in the &lt;i&gt;upstream_server&lt;/i&gt; section instead (вместо) of the 127.0.0.1, restart the container and it should (должен) be working.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
There’s one more thing (Есть еще одна вещь) to complete (завершить) the configuration (настройку). If you browse to the &lt;i&gt;/admin&lt;/i&gt; section you’ll see that static files (статические файлы/статика) are not working. That’s because NGINX is expecting (ожидает) to serve (обслуживания) them from an inexistent (несуществующего) location (места) in the Container. We need to map (сопоставить) it also with a Data Volume.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now update the &lt;i&gt;nginx.conf&lt;/i&gt; file to use that IP address in the &lt;i&gt;upstream_server&lt;/i&gt; section instead of the 127.0.0.1, restart the container and it should be working.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
There’s one more thing to complete the configuration. If you browse to the &lt;i&gt;/admin&lt;/i&gt; section you’ll see that static files are not working. That’s because NGINX is expecting to serve them from an inexistent location in the Container. We need to map it also with a Data Volume.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: left;&quot;&gt;
$ python manage.py collectstatic&lt;br /&gt;
$ docker run -v /home/fernando/djangodocker/nginx.conf:/etc/nginx/conf.d/default.conf:ro -v /home/fernando/djangodocker/static/:/usr/share/nginx/djangodocker/static/ -p 80:80 nginx&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Docker Compose&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
There’s (Есть) an easier (более простой) way to run both containers every time we are working on the project (над проектом) and that’s with (с помощью) the Docker Compose tool.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
To use it we just (только/просто) need&amp;nbsp; to create a docker-compose.yml file on our project directory with all the parameter we’ve been using to run our Containers. The file should look like this.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
There’s an easier way to run both containers every time we are working on the project and that’s with the &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt; tool.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
To use it we just need to create a docker-compose.yml file on our project directory with all the parameter we’ve been using to run our Containers. The file should look like this.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
version: &#39;2&#39;&lt;br /&gt;
services:&lt;br /&gt;
&amp;nbsp;db:&lt;br /&gt;
&amp;nbsp; image: mysql&lt;br /&gt;
&amp;nbsp; environment:&lt;br /&gt;
&amp;nbsp; MYSQL_DATABASE: djangodocker_db&lt;br /&gt;
&amp;nbsp; MYSQL_ROOT_PASSWORD: root&lt;br /&gt;
&amp;nbsp; ports:&lt;br /&gt;
&amp;nbsp; — &quot;3306:3306&quot;&lt;br /&gt;
&amp;nbsp;nginx:&lt;br /&gt;
&amp;nbsp; image: nginx&lt;br /&gt;
&amp;nbsp; volumes:&lt;br /&gt;
&amp;nbsp; — ./nginx.conf:/etc/nginx/conf.d/default.conf:ro&lt;br /&gt;
&amp;nbsp; — ./static:/usr/share/nginx/djangodocker/static&lt;br /&gt;
&amp;nbsp; ports:&lt;br /&gt;
&amp;nbsp; — &quot;80:80&quot;&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can now launch everything with the following command.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
$ docker-compose up&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Note (замечание): since this will be creating new Images you will have to run an interactive shell on the NGINX instance (экземпляре) and check for the host IP to fix (фиксировал) the &lt;i&gt;nginx.conf &lt;/i&gt;file the first time you run the Container.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Note: since this will be creating new Images you will have to run an interactive shell on the NGINX instance and check for the host IP to fix the &lt;i&gt;nginx.conf &lt;/i&gt;file the first time you run the Container.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Next steps&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You might (возможно) have noticed (заметили) by now (уже) that launching new images is very easy, and that the Hub already has lots of useful (полезных) configurations to use on your projects. I encourage (призываю) you to start playing with them and creating your own compose configurations; as you familiarize (знакомиться) yourself with it you can start looking into (начать изучать) the deployment possibilities (возможности развертывания).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You might have noticed by now that launching new images is very easy, and that the Hub already has lots of useful configurations to use on your projects. I encourage you to start playing with them and creating your own compose configurations; as you familiarize yourself with it you can start looking into the deployment possibilities.&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2018/02/django-docker.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-5734591495373247252</guid><pubDate>Wed, 14 Feb 2018 21:30:00 +0000</pubDate><atom:updated>2018-02-15T00:30:42.716+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Подлянка от Excel</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Являюсь на данный момент судьёй отборочного этапа &lt;a href=&quot;https://gofederation.ru/tournaments/73036425&quot;&gt;&quot;Командного чемпионата России&quot;&lt;/a&gt; 2018 года. В работу входит в том числе оформление турнирной таблицы. Таблицу я выгружаю из программы &quot;Горефери&quot; в Excel. Затем копирую в свою мега-таблицу с различными формулами. То, что получаю на выходе, публикую в &lt;a href=&quot;https://goo.gl/SSQqiW&quot;&gt;гугл-таблицах&lt;/a&gt;. Ну и сегодня случился небольшой казус.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Опубликовал итоговую таблицу после первого тура. Затем мне сообщили, что у двух команд, вместо &quot;10.5&quot; очков, показывает &quot;11&quot;. Давай разбираться. Округляет при делении на два? Не должен, вон у других отображает &quot;0.5&quot; нормально. Копирую формулу в другую ячейку - и там показывает &quot;10.5&quot;. Думаю - формат ячейки не тот! Проверяю - общий формат и главное в окне выбора формата издевательски показывает мне &quot;10.5&quot;. И тут, дёрнуло меня - делаю колонку шире. Вуа-ля - &quot;10.5&quot;, как и должно быть.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Такого я от Excel&#39;я не ожидал. Мало того, что отображал &quot;11&quot;, когда не влезало &quot;10.5&quot;. Так еще, редиска такая, копировало в буфер обмена тоже &quot;11&quot;!&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2018/02/excel.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-3845831695695389015</guid><pubDate>Wed, 31 Jan 2018 12:29:00 +0000</pubDate><atom:updated>2018-01-31T15:29:40.721+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Ассоциация файлов в Gnome Commander</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Gnome Commander открывал по умолчанию pdf в GIMP&#39;е. Раздражало открывать каждый раз через контекстное меню. Наконец в очередной раз, при открытии pdf в gimp&#39;е, раздражение пересилило лень. Итог:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&#39;/home/username/.local/share/applications/mimeinfo.cache&#39;&lt;/b&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
[MIME Cache]&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
application/pdf=evince.desktop&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
в той же папке создать файл&amp;nbsp;&lt;b&gt;&#39;evince.desktop&#39;&lt;/b&gt;:&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
[Desktop Entry]&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Name=pdf viewer&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
MimeType=application/pdf;application/x-pdf;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Exec=&#39;/usr/bin/evince&#39;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Type=Application&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Terminal=false&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Сейчас нормально открывает. Посмотрю еще - не потрёт ли перезагрузке. Если ничего не допишу сюда в течение пары дней - значит не трёт.&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2018/01/gnome-commander.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-5124536376475767488</guid><pubDate>Sat, 16 Sep 2017 21:37:00 +0000</pubDate><atom:updated>2017-09-17T00:38:57.873+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Книги</category><title>&quot;Техника, блин!&quot;</title><description>Представляю свой первый литературный опыт. Критику приветствую.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&quot;Техника, блин!&quot;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Пришел с работы уставший. Стряхнул ботинки на шузклинер. С привычным тихим жужжанием ботинки заехали в нишу для чистки, сушки и намазывания кремом. Утром меня будут ждать, как новые. Прошел в гостиную и устало плюхнулся на диван. Настроение паршивое. На работе завал, и добирался до дома долго. И ведь надо было случайно согласиться на обновление автопилота во время поездки. Совсем они уже там рехнулись в этом Гуглософте, чтобы такое предлагать во время движения. Пришлось ждать на обочине полчаса. В рекламе обещают обновления за 5 минут, но это на 16G, а в нашей провинции всё еще 13G. А после обновления еще и настройки своих мест сбились и никак не хотели синхронизироваться. Пришлось вручную настраивать. Техника, блин!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Чтобы немного развеяться решил посмотреть фильм. Положил ладонь на сканер. На экране высветились показатели настроения - 5 основных шкал и итог. Так и есть, паршивое, -45 баллов. Из текущей фильмотеки ничего не подошло. И неудивительно: -45 это за гранью для меня. Появилось предложение сгенерировать из имеющихся. Для основы предложили три: &quot;Матрица&quot;, &quot;Побег из Шоушенка&quot; и &quot;Реальная любовь&quot;. Прочитав последний вариант, сильно удивился. Комедийную мелодраму предлагает переделать под -45 баллов. Что же там такое должно получиться? Из любопытства запустил генерирование, и пошел на кухню за ужином. Открыл мульти-шкаф - там уже меня ждал горячий аппетитный стейк ... с пастой. Аппарат на удивление быстро стал учитывать мои вкусы. Консультант говорил, что его через 2 месяца стало устраивать меню. А у меня уже через 10 дней какие-то чудеса показывает. По калориям вопросов нет - арифметика. Но вкус! Я, конечно, не сильно притязателен к пище, но он уже чуть ли не желания мои угадывает. Ведь пока ехал, у меня действительно возникала мысль о стейке. Но паста?! К стейку?! Действительно, чужой алгоритм - потёмки. Техника, блин!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Закинув всё на поднос, вернулся в гостиную. Оставалось 2% до окончания генерация фильма. Уселся поудобнее и приступил к ужину. Тем временем свет в комнате приглушился до минимума и на экране появились знакомые заставки. Махнул рукой, чтобы пропустить. Ну вот и первые отличия - музыка стала мрачнее. Я погрузился в просмотр.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Когда появились титры, свет стал ярче. Я аж заморгал - всё забываю настроить плавность возвращения нормальной яркости после окончания фильма. Кто же задаёт такие настройки по-умолчанию?! Заметил, что всё еще держу вилку с куском остывшего стейка, а на тарелке еще пол-порции. Придется идти греть. Вот же умудрились переделать. В виде триллера я еще &quot;Реальную любовь&quot; не смотрел. Зашло на ура. Приятно было наблюдать знакомых персонажей в новых перипетиях сюжета. При чем по внешности и мимике изменения были незначительные. Больше всех, как обычно досталось Кире Найтли. По-моему, движку явно не нравится её настоящая актерская игра. Но тут с ним сложно спорить. По привычке нажал на сохранение в коллекцию, хотя редко возвращаюсь к сохраненным - предпочитаю генерировать под текущее настроение. Иногда и отличий немного, но всегда замечаю их с одобрением. А в прошлый раз это кино, помню, с друзьями смотрели под пиво, так там генератор учёл наше коллективное настроение и переделал его в нигерскую идиотскую комедию - при появлении негритянки, с чертами, напоминающую всё ту же Киру Найтли - лежали все. Техника, блин!&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;Автор: Лазарев Илья&lt;/i&gt;</description><link>http://ilqlazar.blogspot.com/2017/09/blog-post.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-4487349515519146044</guid><pubDate>Thu, 24 Aug 2017 20:26:00 +0000</pubDate><atom:updated>2017-08-24T23:28:58.165+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Django-python</category><title>Добавление в несуществующий список в python&#39;е</title><description>Когда требуется создать словарь списков в цикле, то при решении в лоб приходится проверять - создан ли уже список и можно туда добавлять новый элемент или надо его сначала создать.&lt;br /&gt;
&lt;br /&gt;
Например, имеем данные:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2495J5y2xf0kBTh1DlEy8jdXtrnAZTO81dZLKI9Vw0U9dWBJzPLY684O2iCIr8asYAW-K17w3hLafDS2wvQ63Z8N3hhxOCjklcLCxeb4ztfsK-o0Y94Xwxp8aht2yHJkAvHNxgJ7QWH8/s1600/2017-08-24_23-21-39.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;101&quot; data-original-width=&quot;586&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2495J5y2xf0kBTh1DlEy8jdXtrnAZTO81dZLKI9Vw0U9dWBJzPLY684O2iCIr8asYAW-K17w3hLafDS2wvQ63Z8N3hhxOCjklcLCxeb4ztfsK-o0Y94Xwxp8aht2yHJkAvHNxgJ7QWH8/s1600/2017-08-24_23-21-39.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Получаем из него словарь методом, описанным выше:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSBRN36pQItSrRQvXyI2BOs3bOBHKy5I7mn27Ie48qjdMqRaCT6yVXDuyD7bl9Kpm9-UA0wiT9VsmhhSR_dvTuYs5UDFeSCmk0sPk52ujaHs1wY3SUj5SrDziKdH37VSck-47CyxHSN0w/s1600/2017-08-24_23-22-02.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;177&quot; data-original-width=&quot;591&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSBRN36pQItSrRQvXyI2BOs3bOBHKy5I7mn27Ie48qjdMqRaCT6yVXDuyD7bl9Kpm9-UA0wiT9VsmhhSR_dvTuYs5UDFeSCmk0sPk52ujaHs1wY3SUj5SrDziKdH37VSck-47CyxHSN0w/s1600/2017-08-24_23-22-02.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
А сейчас получим тот же результат с помощью метода .setdefault():&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqxgJupL40kaZdtHG_4DFVsn97_48f9PA_9wCOC1aZs8CL7I3sSjXPlFFOgENn-nKwBQSHgXiEos_0riMjwRGM9O8VtbwZ4_tSP52_Sc-DqmiBrtq5dZyfFV2P011aS9d75ThkiHUQtJY/s1600/2017-08-24_23-21-16.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;118&quot; data-original-width=&quot;594&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqxgJupL40kaZdtHG_4DFVsn97_48f9PA_9wCOC1aZs8CL7I3sSjXPlFFOgENn-nKwBQSHgXiEos_0riMjwRGM9O8VtbwZ4_tSP52_Sc-DqmiBrtq5dZyfFV2P011aS9d75ThkiHUQtJY/s1600/2017-08-24_23-21-16.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Из справки: &quot;&lt;b&gt;dict.setdefault(key[, default])&lt;/b&gt; - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None).&quot;</description><link>http://ilqlazar.blogspot.com/2017/08/python.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2495J5y2xf0kBTh1DlEy8jdXtrnAZTO81dZLKI9Vw0U9dWBJzPLY684O2iCIr8asYAW-K17w3hLafDS2wvQ63Z8N3hhxOCjklcLCxeb4ztfsK-o0Y94Xwxp8aht2yHJkAvHNxgJ7QWH8/s72-c/2017-08-24_23-21-39.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-1936529866955384563</guid><pubDate>Thu, 24 Aug 2017 10:54:00 +0000</pubDate><atom:updated>2017-08-24T13:54:20.960+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Не отзывается клавиатура в Chrome в Debian (Mate)</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Переставил debian (stretch) и перестала работать клавиатура в Chrome - вообще ни на что не реагировала. Погуглил - оказалось из-за xNeur (аналог punto swither&#39;а). Вырубил его - действительно заработало. Зашел в настройки xNeur и добавил &quot;Google-chrome&quot; в исключения &quot;Приложения-Не обрабатывать эти приложения&quot;. Клава заработала в хроме, но переключения раскладки у уже набранного текста не хватало. Потом нашел совет поставить галку в хроме &quot;Использовать системные рамки и строку заголовка&quot;. Поставил, перезагрузил хром, убрал хром из исключений xNeur - действительно реагирует на клаву при включенном xNeur. Всё стало ок. Но лишняя строка заголовка в хроме съедает пространство. Увы.&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/08/chrome-debian-mate.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-3584887305045044821</guid><pubDate>Thu, 25 May 2017 07:02:00 +0000</pubDate><atom:updated>2017-05-26T07:55:05.486+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>Нагабику (29). Отчет</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
C 15 по 20 мая проходил двадцать девятый турнир &quot;Нагабику&quot;. Было рекордное количество участников: 74. Диапазон уровня игроков тоже был очень широк: от 23k до 6d. До последнего дня из игроков 5d+ был только один - Трубицин Степан. Но в последний день регистрации зарегистрировались: Бурнаевский Игорь (5d), Тычко Игорь (5d), Инагаки Сатоси (6d), Черных Антон (6d).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Стоит отметить гостя из Японии, временно проживающего в Астрахани: Инагаки Сатоси (хотя сам он записывался, как &quot;Сатоши&quot;, но в РФГ его ввели по принятым правилам транскрипции, как Сатоси). Как раз перед Нагабику проходил Чемпионат Москвы и Московской области, где он принял участие вне конкурса и занял первое место, проиграв только гостю из Китая. Думаю, что его регистрация в турнире повлияла на решение Игоря Бурнаевского и Антона Черных, которых он одолел на том турнире - хотели взять реванш.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-eu6KV4WL4ao/WRfnvbT9AYI/AAAAAAAAEWE/2A--yLQ5Ed0Nhh-MfPWh29bAlihOTZ8_gCCo/s0/030.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://2.bp.blogspot.com/-eu6KV4WL4ao/WRfnvbT9AYI/AAAAAAAAEWE/2A--yLQ5Ed0Nhh-MfPWh29bAlihOTZ8_gCCo/s320/030.jpg&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;фото Акинфеева Кирилла&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
В этот раз решил перейти на новую схему деления на группы Мак-Магона. Раньше я делил на 3, 4 и 5 групп. А тут выделил верхнюю группу в 6d-2k, а остальных поделил по рангам. Получилось 19 групп. Слышал, что это называют деление &quot;по-европейски&quot;. Соответственно пришлось изменить и схему награждения призами. Учитывая еще тот момент, что иногда люди сетовали на то, что выигрывали разбор, а хотел книгу, или наоборот, решил ввести бальную систему. Призовых мест осталось только три верхних, а остальные награждались баллами за 5 и 6 побед. Баллы можно копить и обменивать на призы. Здесь &lt;a href=&quot;http://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=851&amp;amp;p=7555#p7554&quot;&gt;подробности&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
С первых же туров завязалась нешуточная борьба. Например, можно вспомнить &lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/5/15/AcidBee-ferz.sgf&quot;&gt;игру&lt;/a&gt; Реутова Бориса (ferz), с которым мы играем в одной команде в проекте &quot;&lt;a href=&quot;https://vk.com/hhgokgs&quot;&gt;Чосэй&lt;/a&gt;&quot;от Кухаркина Дмитрия. Он в первом туре попал на Игоря Тычко (AcidBee). И отыграл отлично. Проиграл всего пол-очка. И какого же было его удивление, когда после подсчета очков Игорь Бурнаевский показал пункт, с виду нейтральный, который ни AcidBee, ни ferz не заметили, а его занятие Борисом вынуждало Игоря защищаться и тем самым Борис побеждал бы на пол-очка.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://image.prntscr.com/image/63552d01c38d49d1810a72cd3bce46d6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;198&quot; data-original-width=&quot;177&quot; src=&quot;https://image.prntscr.com/image/63552d01c38d49d1810a72cd3bce46d6.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Во втором туре Сатоси попал на первого игрока близкого по уровню - Степана Трубицина. Степан не смог одолеть соперника. (&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/5/16/Step-mi5103kann.sgf&quot;&gt;sgf&lt;/a&gt;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
А Черных Антон одолел Игоря Тычко.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
HappyLook был готов уже в третьем туре сразиться с Сатоси, но нет - соперником у него стал Антон. Борьба, огромное ко и победа за Игорем. (&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/5/17/anton007-HappyLook.sgf&quot;&gt;sgf&lt;/a&gt;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Четверг. Четвертый тур. Игорь HappyLook дождался - соперник Инагаки. На чемпионате Игорь проиграл ему 7.5 очков. В тяжелой борьбе Игорь взял абсолютный реванш - 7.5 очков в его пользу. (&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/5/18/mi5103kann-HappyLook.sgf&quot;&gt;sgf&lt;/a&gt;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
В пятом туре уже Антон брал реванш у Сатоси за чемпионат Москвы. Но не получилось. (&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/5/19/anton007-mi5103kann.sgf&quot;&gt;sgf&lt;/a&gt;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
К шестому туру топ-даны уже друг с другом поиграли, и соперники были попроще. Но это порождает опасное чувство расслабленности. Антон чуть за это не поплатился - Борису Реутову отдал преимущество в первой половине игры и потом пришлось поднапрячься, чтобы одержать победу (7.5 очков). (&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/5/20/anton007-ferz.sgf&quot;&gt;sgf&lt;/a&gt;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
В связи с тем, что делил по рангам, соперники большей частью у всех были под стать им. На большой разброс никто не жаловался. Это повлияло на отличную корректировку некоторых игроков, которые обогнали свой рейтинг РФГ. При обычном делении на несколько групп, таких игроков после первых побед над игроками, которые равны по рейтингу РФГ, зачастую кидает на более сильных игроков, которые сильнее их не только по рейтингу, но и по уровню игры. И при пересчете у них получается не очень большая прибавка. Здесь они двигаются постепенно, поднимаясь приблизительно по рангу вверх после каждой победы. В итоге, призеры, у которых были 6 побед прилично прибавили в рейтинге:&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
Девятайкин Михаил (real1st), Нижний Новгород, 1115→1638 (+523)&lt;br /&gt;
Карпов Александр (Tribyn), Волгодонск, 795→1365 (+570)&lt;br /&gt;
Федотов Александр (IskanderDM), Екатеринбург, 173→843 (+670)&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Игроки, набравшие 5 побед прибавили от 50 до 300 очков&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Также хорошо прибавила Лиза Саламатова. У неё 4 победы. 246→569 (+323)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Хочется отдельно поздравить Игоря Бурнаевского с достижением заветных 2600!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Молодцы!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Немного по спортивным достижениям в разрядной сетке:&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
Девятайкин Михаил (real1st) - достиг уровня второго спортивного разряда&lt;br /&gt;
Порошков Николай (SnowLem) - достиг уровня третьего спортивного разряда&lt;br /&gt;
Карпов Александр (Tribyn) - достиг уровня третьего спортивного разряда&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Для присвоения данных разрядов, необходимо еще занять &lt;a href=&quot;http://minsport.gov.ru/sport/high-sport/edinaya-vserossiyska/5507/&quot;&gt;опеределенные места&lt;/a&gt; в официальных оффлайн турнирах.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Полезные ссылки:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://goo.gl/lOLU9Z&quot;&gt;Турнирная таблица с никами&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://gofederation.ru/tournaments/984269085&quot;&gt;Пересчет рейтинга&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=851&amp;amp;p=7555#p7555&quot;&gt;Итоги&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Во второй половине июня планирую провести Нагабику.Сибирь (2). А во второй половине июля планирую провести Нагабику (30). Подробности позже, когда определюсь с датами&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Отзывы, впечатления, пожелания, критику можете оставлять либо на &lt;a href=&quot;http://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=851&quot;&gt;форуме&lt;/a&gt;, либо в &lt;a href=&quot;https://vk.com/topic-45342068_35388733&quot;&gt;группе вконтакта&lt;/a&gt; (там меня уже поругали за слишком оперативную работу).&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/05/nagabiku29.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-eu6KV4WL4ao/WRfnvbT9AYI/AAAAAAAAEWE/2A--yLQ5Ed0Nhh-MfPWh29bAlihOTZ8_gCCo/s72-c/030.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-6308864148758031413</guid><pubDate>Sun, 07 May 2017 22:02:00 +0000</pubDate><atom:updated>2017-05-08T01:02:39.472+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Кино</category><title>Фарго. Сезон 2</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Отсмотрел второй сезон сериала Фарго. Первый в своё время понравился. Второй рассказывает про события, происходящие по хронологии до первого сезона. А после того, как не смог досмотреть второй сезон &quot;Настоящего детектива&quot; после отличного первого, и&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Фарго как-то не горел желанием смотреть.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Не знаю, что сподвигло, но начал. Все десять серий - оказались отличные. Много ярких персонажей, которых отыграли хорошие актеры: суровый индеец, порядочный и отважный главный герой полицейский вместе с тестем, хитрый Миллиган, его близнецы помощники, &quot;мясник&quot;, жена его - просто шик (её фраза &quot;это просто летающая тарелка! Бежим!&quot; просто убила), вся семейка Герхардтов. При чем, по сравнению с первым сезоном - меньше карикатурных ролей, больше адекватных. Вообще порадовало количество вменяемых персонажей, при чем в разных лагерях. &amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ну и сандтреки просто отличные. Тут тебе и &quot;Цеппелины&quot; и &quot;Блэк сабат&quot;. При чем подобраны со смыслом - текст коррелирует с происходящим на экране (спасибо лостфильму за перевод текста песен в виде субтитров). Отобрал себе в плэйлист хорошую заунывную &lt;a href=&quot;https://music.yandex.ru/album/3347593/track/28040126&quot;&gt;Shakey Graves &quot;O Death&quot;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Получил удовольствие от просмотра. Подводя итог: даже лучше первого сезона.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Говорят, сейчас третий показывают. Думаю, что соберусь как-нибудь посмотреть.&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/05/2.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-9076775074191721100</guid><pubDate>Thu, 04 May 2017 11:07:00 +0000</pubDate><atom:updated>2017-05-04T14:10:31.484+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>День бэкапа</title><description>&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
31 марта был международный &lt;a href=&quot;http://www.calend.ru/holidays/0/0/2897/&quot;&gt;день резервного копирования&lt;/a&gt;. Что-то я забыл его отметить.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcywBARLsMTpOEI579LqrrPQBjrfPQd7RoNfJjMGEc5VaM3u0gAmdgKqc-TCOE-VaDmMY28bAchZhrblLjdKLJd8bJDAkGuA80suve0Afe8FTbeSOZOhSWgljxYeybgbAWNv9SgEtkfyQ/s1600/14123793158823.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;237&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcywBARLsMTpOEI579LqrrPQBjrfPQd7RoNfJjMGEc5VaM3u0gAmdgKqc-TCOE-VaDmMY28bAchZhrblLjdKLJd8bJDAkGuA80suve0Afe8FTbeSOZOhSWgljxYeybgbAWNv9SgEtkfyQ/s320/14123793158823.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ну а если к слову, то периодически спрашиваю знакомых - делают ли они копии важных документов, фотографий. Например, многие фоткают на телефон и не копируют фотки никуда. А телефоны могут потеряться, карточки могут выйти из строя. Да и вообще все накопители могут выйти из строя. И никаких звоночков не стоит ждать. Купили новый накопитель - он у вас в тот же день может &quot;сломаться&quot;. Работает 10 лет - тем более может крякнуть. Так что - рекомендую сесть как-нибудь, взять листочек с ручкой и написать список папок или видов документов, с которыми бы вам жалко было расставаться: документы по работе, фотографии, видео-записи (личные, а не пиратские фильмы). Всё то, что не скачаешь из инета вновь. А потом прикинуть сколько это всё весит, решить где будете хранить копию (флешка, внешний винт, облачное хранилище, просто внутрь еще один жесткий диск поставить, NAS&#39;ы всякие и т.п.). Решить с какой периодичностью хотите делать копии. Выбрать инструмент копирования: вручную, самописные скрипты, спец-программы (cobian какой-нибудь, acronis и т.п.). Главное - не откладывать в долгий ящик. Периодически возвращайтесь к данному вопросу - может что-то новое появится, что хотите сохранить, что-то вспомните.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Удачи - храните файлы в сберегательной флешке!&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/05/blog-post.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcywBARLsMTpOEI579LqrrPQBjrfPQd7RoNfJjMGEc5VaM3u0gAmdgKqc-TCOE-VaDmMY28bAchZhrblLjdKLJd8bJDAkGuA80suve0Afe8FTbeSOZOhSWgljxYeybgbAWNv9SgEtkfyQ/s72-c/14123793158823.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-6713594208795498897</guid><pubDate>Thu, 27 Apr 2017 14:58:00 +0000</pubDate><atom:updated>2017-04-27T17:58:17.487+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>Отчет по Lobster Cup 2017</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Вчера успешно отыграл в &lt;a href=&quot;https://vk.com/lobstercup&quot;&gt;Лобстере&lt;/a&gt; пятый завершающий тур. По итогу у меня 4 победы из 5. Напарники у меня были просто отличные - все игры проходили очень комфортно.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://pp.userapi.com/c624130/v624130925/46917/AGoo_vi5cK8.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://pp.userapi.com/c624130/v624130925/46917/AGoo_vi5cK8.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Первый &lt;/b&gt;тур: iLq + godragon - Jetumi+Rogal80 (коми -3.5). Победили 2.5 очка. У Дарьи уровень чуть меньше, поэтому основные переживания легли на неё :) Но играли слаженно - одеяло никто не перетягивал.&amp;nbsp;&lt;a href=&quot;http://files.gokgs.com/games/2017/4/1/iLq-Godragon-Rogal80-Jetumi.sgf&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13px;&quot;&gt;SGF&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Второй &lt;/b&gt;тур: Goyer+weaver - iLq+AlexAndr11 (коми -22,5). Проиграли 9,5 очков. Алексею перед игрой разобрал несколько его партий, дал советы по основным стратегическим моментам. По-моему, пошли на пользу. Играл очень хорошо - не припомню, чтобы возникли ситуации, которые бы заставили меня схватиться за голову.&amp;nbsp;&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/4/5/iLq-Dara-Bamboni-Goyer.sgf&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13px;&quot;&gt;SGF&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Третий &lt;/b&gt;тур: Madgeh+Estryx - HARDROCK+iLq. Договориться по времени не смогли, поэтому сыграли 1 на 1 с Madgeh. Коми получилось очень большое в мою пользу, поэтому Виталию пришлось играть излишне агресивно, чему я смог противостоять. Победа по сдаче.&amp;nbsp;&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/4/14/Madgeh-iLq.sgf&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13px;&quot;&gt;SGF&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Четвертый &lt;/b&gt;тур: Evilfaster+iLq - weaver+HARDROCK (коми -81.5 - не в нашу пользу). Первый напарник, сильнее меня по уровню. Тут мне пришлось побольше попереживаться на счет того, как бы не подвести. Но Юра оценил мою игру положительно. В паре мест я дал слабину, в остальном - сыграл на уровне. Победа по времени, но по очкам тоже вели.&amp;nbsp;&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/4/18/Evilfaster-iLq-weaver-HARDROCK.sgf&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13px;&quot;&gt;SGF&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Пятый &lt;/b&gt;тур: Amorff+Basil1 - iLq+weaver (коми -79,5 - в нашу пользу). Напарником был Дмитрий, против которого я до этого сыграл во втором и четвертом турах. Уровень у нас близок - где-то 2k на КГС у обоих. Против нас 3 и 2 даны. Все трое - из Краснодара. Коми, конечно, великовато было. Сыграли отлично. Вначале играли прочно, от всех попыток соперников обострить игру успешно уворачивались, при этом сами в тюбане стали вести себя довольно агресивно и при этом успешно. В итоге - победа по сдаче.&amp;nbsp;&lt;a href=&quot;http://eidogo.com/#url:http://files.gokgs.com/games/2017/4/26/Amorff-Basil1-iLq-weaver.sgf&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13px;&quot;&gt;SGF&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
По итогу - только положительные эмоции: понравились и игры, и напарники, и организация турнира.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Осталось дождаться &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1q61j7Bn4Zdet9yPNORMeLVgM4jj_Rg3-7zk0azJ2bIE/edit&quot;&gt;окончательных результатов&lt;/a&gt;, посмотреть какое место занял.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: arial, sans, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/04/lobster-cup-2017.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-4612336691278056803</guid><pubDate>Sat, 01 Apr 2017 04:00:00 +0000</pubDate><atom:updated>2017-04-01T07:00:04.131+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">го</category><title>Снова Lobster Cup и Imagemagick</title><description>Приятно наблюдать за организацией ренго-турнира &lt;a href=&quot;https://vk.com/lobstercup&quot;&gt;Lobster Cup 2017&lt;/a&gt;, в котором я решил принять участие. Ребята подошли со всей ответственностью: отличный логотип, регистрация в вк через приложение, таблицы жеребьевки в гугл-документах, создание бесед (!) для четверок игроков, чтобы они оперативно смогли договориться о времени (наша четверка в течение одного вечера договорилась), ну и самый шик: объявление времени игр четверок с публикацией коллажа из фоток игроков:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0FvYcv0jl1u7doau7-21zHt07jxHsb-q8v7P_rOQyetFEIdTxtHEWxnyqMwgw1Xs1noCbTvxfIcr4s9ZymYDfQDqg9rcrjP2ExfOEKGLf9Rab2ZdvpJtzDIA86jT63_WkZxOGFiVinHI/s1600/%25D0%25BF%25D1%2580%25D0%25B8%25D0%25BC%25D0%25B5%25D1%2580.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0FvYcv0jl1u7doau7-21zHt07jxHsb-q8v7P_rOQyetFEIdTxtHEWxnyqMwgw1Xs1noCbTvxfIcr4s9ZymYDfQDqg9rcrjP2ExfOEKGLf9Rab2ZdvpJtzDIA86jT63_WkZxOGFiVinHI/s320/%25D0%25BF%25D1%2580%25D0%25B8%25D0%25BC%25D0%25B5%25D1%2580.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Меня и беседы то впечатлили объемом работ, а от коллажей я вообще был в культурном шоке. Это ведь каждую неделю надо будет собирать 10 коллажей. Конечно, ко второму-третьему туру уже будет полегче сборщику, так как уже откадрирует всех игроков, но всё равно - занимать будет достаточно времени. Возникла мысль автоматизировать этот процесс с помощью утилиты (на самом деле комплектом утилит) &lt;a href=&quot;https://www.imagemagick.org/script/index.php&quot;&gt;imagemagick&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Я ей до этого пользовался только один раз на прошлой работе - надо было автоматизировать сжатие сканов обложек книг. И недавно я натыкался на &lt;a href=&quot;http://dihalt.ru/imagemagic.html&quot;&gt;пост у Dihalt&#39;а&lt;/a&gt; о том, как он автоматизировал подготовку картинок для публикации в блоге с наложением водного знака, указания опеределнного размера и отрисовки бордюра.&lt;br /&gt;
&lt;br /&gt;
Связался с одним из организаторов, Эдуардом (Jetumi), предложил идею. Попросил выслать мне сетку с &quot;VS&quot; с прозрачными полями и 4 примера фоток игроков. Вооружившись гуглом, стал пробовать. Получилось. Запускаю скрипт с аргументами вида 1 2 3 4 1-3, где первые четыре числа - номера игроков и соответственно названия картинок вида 1.png и т.д. и 1-3 выходной коллаж. На следующий день подумал, что вручную это всё запускать тоже не хорошо. Решил, что лучше после жеребьевки создавать текстовый файл, где построчно указывать номер доски и номера игроков. А скрипт уже по файлу пройдётся и создаст все коллажи за один присест. Немного скрипт доделал и выслал Эдуарду. В итоге, Эдуарду надо подготовить один раз 40 кадрированных фоток игроков, с лицами, направленными влево, и затем после жеребьевок создавать текстовый файл и запускать скрипт. Скрипт, будет игроков, отображенных слева зеркалить, чтобы лица смотрели вправо, тем самым нагнетая атмосферу противостояния.&lt;br /&gt;
&lt;br /&gt;
Во втором туре, как я понимаю, будем уже наблюдать результат работы Эдуарда и скрипта.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://pastebin.com/ryL63QX1&quot;&gt;Сам код скрипта&lt;/a&gt;.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;
</description><link>http://ilqlazar.blogspot.com/2017/04/lobster-cup-imagemagick.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0FvYcv0jl1u7doau7-21zHt07jxHsb-q8v7P_rOQyetFEIdTxtHEWxnyqMwgw1Xs1noCbTvxfIcr4s9ZymYDfQDqg9rcrjP2ExfOEKGLf9Rab2ZdvpJtzDIA86jT63_WkZxOGFiVinHI/s72-c/%25D0%25BF%25D1%2580%25D0%25B8%25D0%25BC%25D0%25B5%25D1%2580.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-8771803748807054285</guid><pubDate>Fri, 31 Mar 2017 04:00:00 +0000</pubDate><atom:updated>2017-03-31T07:00:03.272+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>Логотип Нагабику</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
По-моему, после того как зарегистрировались топ-даны на двадцать восьмой Нагабику, решил, что одним из призов будет кружка с логотипом Нагабику. А логотипа то и нет. Давно вынашиваю идею одного лого, но никто из знакомых художников/дизайнеров за него не брался. А сам я, увы, бесталанный в этом плане (ниже подтверждение). Решил выбрать что-другое, попроще, а эту идею оставить на потом. Стал чиркать зарисовки на листочках: были и дисплеи с кгсом, соединенные кабелем и просто игрался со словом, и иероглиф &quot;Го&quot; вместо &quot;Б&quot; подставлял. Но потом что-то переклинило меня на черепашку с гобаном на панцире. Черепашка, конечно, со смыслом: во-первых, с японского &quot;нагабику&quot; переводится, как продолжительный, а во-вторых, турнир довольно долгоживущий получился - первый турнир провел в 2010 году. Несколько вариаций нарисовал. В итоге остановился на одном наиболее минималистичном. Намастрячил в каком-то онлайн векторном редакторе &quot;концепт&quot;:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJAZ4DIfwf9rxLrKbKNtCcemAlX3H7AwyqVCOcxEIhvAz6vvbDLAJeKonPzSBCqoeRFCO5avuY85KT04kSx4YKVid-1DIhkmiuzlaw6jJhEJN3Im2HREFiSAFAT3gklJdvhqOBjWdjyQ/s1600/method-draw-image+%25283%2529.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;219&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJAZ4DIfwf9rxLrKbKNtCcemAlX3H7AwyqVCOcxEIhvAz6vvbDLAJeKonPzSBCqoeRFCO5avuY85KT04kSx4YKVid-1DIhkmiuzlaw6jJhEJN3Im2HREFiSAFAT3gklJdvhqOBjWdjyQ/s320/method-draw-image+%25283%2529.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Затем наткнулся на объявление крэйзи ренго-турнира &lt;a href=&quot;https://vk.com/lobstercup&quot;&gt;Lobster Cup 2017&lt;/a&gt;, у которого был отличный логотип. Пообщался с организаторами, узнал, что логотип делал Иван Песоцкий. Связался, спросил сможет ли помочь, скинул черновик. Иван сказал, что подумает как это можно оформить. Вечером скинул свой черновик, который мне понравился и утром уже я получил его конечный вариант:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGOjFsrhmFutlJKkZVu2NUpOoFz2fXbRp5WzhDmZYUoWHxSlaS-4gPIemNdZHdmjuonl1qBrz3cYJz9mQrb877Bo67-0IlcKfoUYAfXRXTSJ_7sMS8qYfo1nP3WXfRWzP-XZ4SlP0mO78/s1600/drawing-6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGOjFsrhmFutlJKkZVu2NUpOoFz2fXbRp5WzhDmZYUoWHxSlaS-4gPIemNdZHdmjuonl1qBrz3cYJz9mQrb877Bo67-0IlcKfoUYAfXRXTSJ_7sMS8qYfo1nP3WXfRWzP-XZ4SlP0mO78/s320/drawing-6.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Обсудил со знакомыми и решил, что надо немного поменять цвета (советовали, например, для печати сделать более контрастно), развернуть передние лапы (чтобы больше на сухопутную была похожа, хотя я не зоолог) и убрать хвост (а то еще подумают всякое). Вечером с женой посидели, поподбирали цвета и в итоге утвердили вот такой вариант:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvwuqC14HzThy0NdJXvvbMfNMTvRBUw35dIl7aGvRbYw4CEbc5VjWPIR7rhmRVfjHMeqRE7v-x9iUEK5F3AxO1E7vnc_kTBHLpPo-Q6ZsoU9vWGqJJBl3TMafhtBaig2wzhoimW2bpJAY/s1600/drawing-6-ilq7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvwuqC14HzThy0NdJXvvbMfNMTvRBUw35dIl7aGvRbYw4CEbc5VjWPIR7rhmRVfjHMeqRE7v-x9iUEK5F3AxO1E7vnc_kTBHLpPo-Q6ZsoU9vWGqJJBl3TMafhtBaig2wzhoimW2bpJAY/s320/drawing-6-ilq7.png&quot; width=&quot;228&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
По-моему, классно получилось.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Спасибо Ивану за помощь!&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/03/nagabiku-logo.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJAZ4DIfwf9rxLrKbKNtCcemAlX3H7AwyqVCOcxEIhvAz6vvbDLAJeKonPzSBCqoeRFCO5avuY85KT04kSx4YKVid-1DIhkmiuzlaw6jJhEJN3Im2HREFiSAFAT3gklJdvhqOBjWdjyQ/s72-c/method-draw-image+%25283%2529.png" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-5499478369790200956</guid><pubDate>Thu, 30 Mar 2017 04:00:00 +0000</pubDate><atom:updated>2017-03-30T07:00:23.296+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">го</category><title>Розыгрыш приза с помощью randomus.ru</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Необходимо было разыграть комплект между игроками, занявшими первые места в группах. HappyLook отказался, объяснив это тем, что начинающим нужнее. Tribyn отказался, потому что у него есть комплект, а второй девать некуда - клуба нет, знакомых играющих тоже. Оставалось три претендента.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Поискали сервисы, которые бы позволили разыграть в онлайне. Если разыгрывать, &quot;бросая монетку&quot;, то нет доказательств, что ты &quot;кидал монетку&quot; один раз, или просто не написал &quot;нужного&quot; призера. Само собой мошенничать никто не собирался, но мысли у людей почему-то зачастую крутятся вокруг &quot;как бы кто меня не обманул&quot;. Сам такой иногда, чего уж.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
То есть нужен был сервис, который, бы вёл протокол, давал возможность запускать генератор только один раз, имел ссылку на розыгрыш, можно было бы задавать &quot;участников&quot; вручную (без соц. сетей). Нашли &lt;a href=&quot;http://randomus.ru/&quot;&gt;randomus.ru&lt;/a&gt;. Сделано просто, но отвечало всем требованиям. В понедельник днём создали генератор, опубликовали ссылку на &lt;a href=&quot;http://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=827&amp;amp;start=20#p7381&quot;&gt;форуме&lt;/a&gt;. В 20:00 нажал &quot;&lt;a href=&quot;http://randomus.ru/num3646078&quot;&gt;сгенерировать&lt;/a&gt;&quot;.&amp;nbsp;&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/03/randomusru.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-7619837409991119020</guid><pubDate>Wed, 29 Mar 2017 04:00:00 +0000</pubDate><atom:updated>2017-03-30T11:09:27.814+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Образование</category><category domain="http://www.blogger.com/atom/ns#">го</category><title>Про игру го в разведопросе про машинное обучение.</title><description>Сам по себе интересный обзорный разведопрос &quot;Сергей Марков о машинном обучении&quot;. Но также примечательно упоминание игры го. С &lt;a href=&quot;https://youtu.be/aW-b4eaWtMY?t=36m40s&quot;&gt;36:40 - про шахматы и го&lt;/a&gt;. Есть &lt;a href=&quot;https://oper.ru/video/view.php?t=1956&quot;&gt;текстовый вариант&lt;/a&gt;&amp;nbsp;и &lt;a href=&quot;https://mirror1.oper.ru/video/audio/interview_machinelearning.mp3&quot;&gt;аудио-версия&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/aW-b4eaWtMY/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/aW-b4eaWtMY?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://ilqlazar.blogspot.com/2017/03/blog-post.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/aW-b4eaWtMY/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-4144594655566856744</guid><pubDate>Tue, 28 Mar 2017 08:57:00 +0000</pubDate><atom:updated>2017-03-30T11:08:37.858+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>Нагабику (28). Отчет</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZFyn43NZ7Htn1TVmMkM1jhuRJITc8i6yk4QS6en9uM0jegwsfrKhKHUjnJ_2TNGKmhaOBPtZuQwmgOSNSciwALGhQG4dmOv5QJkai01f0FGcsotsb8i8Mmsao8XsuMvTlXbwKMdAmtpk/s1600/drawing-6-ilq7.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZFyn43NZ7Htn1TVmMkM1jhuRJITc8i6yk4QS6en9uM0jegwsfrKhKHUjnJ_2TNGKmhaOBPtZuQwmgOSNSciwALGhQG4dmOv5QJkai01f0FGcsotsb8i8Mmsao8XsuMvTlXbwKMdAmtpk/s200/drawing-6-ilq7.jpg&quot; width=&quot;142&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
25 марта завершился двадцать восьмой интернет-турнир по го &quot;Нагабику&quot;. Участвовало 68 человек из 38 городов (в том числе городов Испании, Украины). Нельзя не отметить и уровень верхней группы - участвовали такие игроки, как Черных Антон [6d], Тычко Игорь [5d], Бурнаевский Игорь [5d], Каймин Слава [5d], Архаров Андрей [4d]. Надеюсь, что это был не флэшмоб, а тенденция.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
С делением на стартовые группы Мак-Магона опять была дилемма. Всё пытаюсь отреагировать на претензии к жеребьевке, в плане сведения пар с большой разницей в уровне. Недовольны, конечно, не все, но каждый раз несколько человек это отмечают. Хотел было по так называемой Европейской системе, когда выделяют верхнюю группу, а потом делят порангово - каждый ранг, это группа. Но, в связи с новым призом в виде комплекта (о нём подробнее ниже), который спонсор решил разыграть среди первых мест в группах, пришлось отказаться пока от этой идеи. Ну и вообще тарам призы надо по особому делить - обычно там кроме первых трёх призовых мест, призы получают игроки, одержавшие наибольшее количество побед. В итоге, почитал рекомендации Сергея Павлова, вбил в эксельку формулы вероятностей побед в группе между верхним и нижним, и поделил на 5 групп. Кто-то сказал, что более гладко прошла жеребьевка (по их ощущениям). Но Европейскую систему всё равно охота попробовать.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Взгляды болельщиков, думаю, были устремлены на верхнюю группу. Кто же выйдёт победителем?! В первого туре неудачно выступил Каймин Слава [5d], проиграв Петрову Кириллу [1d]. В итоге он еще и пропустил 3 тура, соответственно на борьбу за призовое место рассчитывать не приходилось. В третьем туре Черных Антон [6d] проиграл Тычко Игорю [5d]. В четвертом туре столкнулись два Игоря - зрители прильнули к экранам! Но Бурнаевский Игорь пёр, как танк - четыре победы из четырёх. Кто же даст ему отпор? В пятом туре попробовал Архаров Андрей, но не получилось. Оставалась надежда на Антона, но так как он пропустил 5 тур, программа не свела его с Игорем. В итоге у Игоря 6 побед! 1 место! У Тычко Игоря - 2 место. У Антона - 3 место.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Во второй группе отличился Степанов Евгений (stevvi) [3k] - на счету победы над такими игроками, как Кухаркин Дмитрий (HelloWeen) [1d] и Петров Кирилл (есhopolice) [1d]. Ну а партия с Архаровым Андреем (MoogleOo) [4d]? Проигрыш по времени. Но ситуация на доске на тот момент была не в пользу Андрея. Евгения ждёт неплохой пересчет! Результат: первое место в группе!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Об остальных призёрах можно узнать из &lt;a href=&quot;http://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=827&amp;amp;p=7375#p7375&quot;&gt;итогов, опубликованных на форуме&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
В связи с работами на сервере РФГ, пересчет рейтинга еще не готов. Но по локальному пересчету можно уже делать некоторые выводы.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- Бурнаевский Игорь приближается к заветному 6 дану. Он считает, что с учетом московских игр, должен достигнуть отметки 2600.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- Евгений (stevvi) c 3k скакнул на 1d - уровень КМС. Для КМС останется ему занять призовое место на турнирах окружного или Российского масштаба.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- Банко Дмитрий (SGFtech) тоже пересчитало сразу на 2 камня вверх 1710 -&amp;gt; 1922 (+212 очков). Уровень первого разряда (&amp;gt;1800).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- У Лифановой Ксении (TebTengri) +170 очков. Итого 1482. Уровень второго разряда (&amp;gt;1400).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- Чуркин Александр (churckin): +200 очков. Отлично.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Молодцы!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Немного о призах. Во-первых, у данного турнира был новый спонсор - интернет-магазин &quot;&lt;a href=&quot;http://breath-go.ru/&quot;&gt;Дыхание Го&lt;/a&gt;&quot;. Они предоставили комплект (&lt;a href=&quot;http://breath-go.ru/item/1&quot;&gt;доска&lt;/a&gt; + &lt;a href=&quot;http://breath-go.ru/item/2&quot;&gt;камни&lt;/a&gt;), разыграв его между игроками, занявшими первое место в группах. Приз достался Гималетдинову Сагиту (Laneev135) из Казани, занявшему 1 место в 4 группе. Во-вторых, с учетом увеличения количества групп, а их уже стало 5, супротив ранешних трёх, добавил еще пару разборов, связавшись с данами, которые согласились помочь (Трубицин Степан (Step) и Святловского Михаила (AlGebr)). В-третьих, это приз за первое место в виде разбора от Игоря. Немало иронизировали по этому поводу, когда он зарегистрировался. Мол &quot;неужели сам себе разбирать будет&quot;? Но он разумно передал это право &quot;первому в таблице из тех, кто в изначальном рейтинге не был в топ-5&quot;. Кстати, я думал и обсуждал со знакомыми - а что можно призовать топ-данам. Кроме денег, оказалось не так и много вариантов. Остановился пока на кружке с логотипом турнира, благо его как раз на турнирной неделе и создали, о чем поведаю в отдельном посте.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Топ-даны многим соперникам разбирали игры. За что им огромное спасибо. У некоторых были учительские статусы, и разборы были со звуком. Сам записывать разборы я не мог - у меня во время судейства чат пиликает и окна мелькают туда-сюда. Несколько разборов удалось записать Гореву Андрею &amp;nbsp;и Лазареву Николаю, за что им отдельная благодарность. Видео выложены на &lt;a href=&quot;https://www.youtube.com/channel/UCdglhSzg-NdZJkaaji9Emzg/videos?shelf_id=0&amp;amp;view=0&amp;amp;sort=dd&quot;&gt;ютуб-канал &quot;Нагабику&quot;&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Спасибо всем, кто помогает и участвует!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://goo.gl/SWU12x&quot;&gt;Турнирная таблица&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=827&amp;amp;start=20#p7375&quot;&gt;Итоги на форуме&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://vk.com/nagabiku&quot;&gt;Группа в VK&lt;/a&gt;&amp;nbsp;(вступайте)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://www.youtube.com/channel/UCdglhSzg-NdZJkaaji9Emzg/videos?shelf_id=0&amp;amp;view=0&amp;amp;sort=dd&quot;&gt;Канал на Youtube&lt;/a&gt;&amp;nbsp;(подписывайтесь)&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/03/28.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZFyn43NZ7Htn1TVmMkM1jhuRJITc8i6yk4QS6en9uM0jegwsfrKhKHUjnJ_2TNGKmhaOBPtZuQwmgOSNSciwALGhQG4dmOv5QJkai01f0FGcsotsb8i8Mmsao8XsuMvTlXbwKMdAmtpk/s72-c/drawing-6-ilq7.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-3435966372611825694</guid><pubDate>Tue, 28 Feb 2017 17:30:00 +0000</pubDate><atom:updated>2017-02-28T20:30:15.835+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>Шёл 2003 год. Компьютерра об игре Го и ИИ.</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhCWm6fPAsqxdyJ9xfqMeGA0kyVSEBxmVsU02DetHWKrSgbsWAecYJ8eeYp4VH2PaDP4xtp9HLXd5poxi91f1N8twe0OUGGMB4Uie01gL0seEPQAdCTMjGJHpDrgJoeZfmjsyNY-6TNOo/s1600/%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D1%258C%25D1%258E%25D1%2582%25D0%25B5%25D1%2580%25D1%2580%25D0%25B0.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhCWm6fPAsqxdyJ9xfqMeGA0kyVSEBxmVsU02DetHWKrSgbsWAecYJ8eeYp4VH2PaDP4xtp9HLXd5poxi91f1N8twe0OUGGMB4Uie01gL0seEPQAdCTMjGJHpDrgJoeZfmjsyNY-6TNOo/s200/%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D1%258C%25D1%258E%25D1%2582%25D0%25B5%25D1%2580%25D1%2580%25D0%25B0.jpg&quot; width=&quot;140&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Из архива журнала &quot;Компьютерра&quot;. Рассуждения о сложности ИИ для игры в Го. Да и как вводная в игру - неплохая статья. Даже правила опубликовали. Замечу, что в настоящее время ведётся активная разработка ИИ для Го и вполне успешно - уже несколько топ-данов были повержены. Всего в &lt;a href=&quot;http://old.computerra.ru/offline/2003/484/&quot;&gt;номере&lt;/a&gt; про го было три статьи:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://old.computerra.ru/2003/484/201610/&quot;&gt;Многозначительный бадук го вейчи&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://old.computerra.ru/2003/484/201611/&quot;&gt;Проблема го&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://old.computerra.ru/2003/484/201624/&quot;&gt;Игра, похожая на жизнь&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/02/2003.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhCWm6fPAsqxdyJ9xfqMeGA0kyVSEBxmVsU02DetHWKrSgbsWAecYJ8eeYp4VH2PaDP4xtp9HLXd5poxi91f1N8twe0OUGGMB4Uie01gL0seEPQAdCTMjGJHpDrgJoeZfmjsyNY-6TNOo/s72-c/%25D0%25BA%25D0%25BE%25D0%25BC%25D0%25BF%25D1%258C%25D1%258E%25D1%2582%25D0%25B5%25D1%2580%25D1%2580%25D0%25B0.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-1291871661471765774</guid><pubDate>Mon, 27 Feb 2017 21:27:00 +0000</pubDate><atom:updated>2017-02-28T00:27:37.648+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>OGS заопенсорсили</title><description>&lt;a href=&quot;https://forums.online-go.com/t/the-online-go-com-user-interface-is-now-open-source/10987&quot;&gt;Сама новость&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;https://github.com/online-go/online-go.com&quot;&gt;Гитхаб&lt;/a&gt;.&lt;br /&gt;
Больше ОГС&#39;ов - хороших и разных!</description><link>http://ilqlazar.blogspot.com/2017/02/ogs.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-7256733744257503730</guid><pubDate>Mon, 27 Feb 2017 13:53:00 +0000</pubDate><atom:updated>2017-03-01T10:31:45.555+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>Нагабику 27. Отчет</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
26 февраля завершился двадцать седьмой интернет-турнир по го &quot;Нагабику&quot;. В этот раз зарегистрировалось 76 игроков. Из них передумали еще на стадии оплаты 5 человек. Также еще пятеро не смогли участвовать в силу обстоятельств уже после оплаты. По факту участвовало 66 игроков. Правда и среди них трое сыграли всего в одном туре. Уровень участников: от 3d до 26k. География: Минск, Киев, и от Санкт-Петербурга до Магадана. Из Москвы было больше всего игроков - 12. Второе место по количеству поделили Киров, Краснодар и Казань - 5 человек (в Кирове 6, но Ринат смог сыграть только в первом туре).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Немного в сторону. Планировал провести турнир на неделю раньше. Но поступило предложение судить отборочный этап Командного ЧР 2017 - планировался начаться в феврале. Ждал положения и откладывал объявления Нагабику, так как посчитал, что будет многовато - судить сразу два турнира. Затем увидел, что КЧР объявили, и я не при делах. Запланировал на неделю вперёд. Смотрел, чтобы не пересеклось с другими большими оффлайн-турнирами или интернет-турнирами. В итоге - пересекся немного с интернет-турниром &lt;a href=&quot;http://gofederation.ru/tournaments/36199363&quot;&gt;Никорай До&lt;/a&gt;. То ли я просмотрел, то ли объявили его позже того, когда я подбирал даты. В общем получилось вот так. Когда заметил - почитал внимательно положение - оказалось, что мы не сильно пересекаемся. В отличие от моего турнира - в Никорай договорное время проведения игры - на каждый тур даётся 2-3 дня. Что в принципе позволило некоторым игрокам участвовать и там и там. По количеству зарегистрированных игроков - у меня никаких жалоб - чуть ли не рекорд. Разговаривал с Антоном - у них в принципе тоже близко к планируемым числам. Надо мне быть в будущем внимательнее. И на следующий год хочу поучаствовать в Никорай До.&lt;br /&gt;
&lt;br /&gt;
Перейдем к старту.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Начался турнир с форс-мажора. После того как начал собирать подтверждения участия в первом туре (а начинаю я сейчас раньше - где-то в 20:30, из-за большого количества игроков), приблизительно в 20:40 на КГС появилось объявление, которое на чистом английском гласило: &quot;через 5 минут будет обновление сервера. Связи не будет несколько минут&quot;. Ну, думаю, ничего страшного - пусть обновляется, успею отметить всех. В 20:44 еще раз предупредили, что через минуту будет апгрейд. И связь обрубили. В 21:00 не включили. Люди пишут на email и в ВК, звонят, жалуются, что не могут зайти на кгс - успокаиваю, мол у всех так - ждём. В итоге заработал кгс около 21:30, но к тому времени уже принял решение сдвинуть турнир на один день - оповестил кого смог в личку, также отписал в описании комнаты на КГС и на форуме.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Делил на 4 стартовые группы мак-магона. Вернул разницу в 1 очко между группами. Некоторым игрокам не понравилась крэйзи жеребьевка - то есть когда игрок попадает на соперника, превышающего его ранг на 5 и более камней. Буду с этим бороться - обещаю!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Участвовало 4 дана: Губарьков Леонид (GolemXIV 1d), Мкртычев Эдуард (Jetumi 1d), Skachkou Aliaksandr (skachkov 2d), Магзумов Ринат (Tired 3d). Ринат, как говорил выше, в силу семейных обстоятельств после первого тура продолжить участвовать не смог. Из любопытного - призовые места даны занять не смогли. Первое место занял Кухаркин Дмитрий (Helloween 1k) - 6 побед из 6! Последняя партия у него была с Эдуардом. При этом решалась судьба первого места. Если бы Эдуард победил, то коэффициент был бы выше у Колегова Ивана (songokuss3 3k). В тяжелейшей партии, Дмитрий одолел Эдуарда и закрепил за собой первое место. Иван оказался на втором месте с 5 победами. Во время партии были моменты, когда зрители были готовы поставить и на победу Эдуарда, но не вышло. Пока по предварительному локальному пересчету - у Дмитрия + 175 - итого 2d по РФГ, сто соответствует по рейтингу кандидату в мастера спорта. Надеюсь, что Дмитрий сможет подтвердить КМС, заняв призовые места на соответствующих соревнованиях в офф-лайне.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Также отметим изменения рейтинга у других игроков (еще раз замечу, что рассматривается предварительный пересчет):&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- вышеупомянутый Колегов Иван: прибавка +245 (3k-&amp;gt;1d)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- Ломач Артём (AZond): по РФГ был рейтинг 617 (15k), но подходил под условия присвоения УЭО, поэтому участвовал, как 1600 (5k). В итоге =&amp;gt; 1307 (8k). Хорошая корректировка.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- Щербакова Мария (Carregan) - снова заняла первое место в группе и +142 (итого 9k).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
- Зырянова Ксения (SenyaArt) - участвовала впервые в рейтинг-турнире и заняла 2 место в группе. ЭО была выставлена 20k. +618, итого 13k. Осталось немного до 3 разряда ;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Но будем ждать пересчета от рейтинг-комиссии РФГ.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
В основном, судя по словам благодарности, игрокам турнир понравился. Буду продолжать и дальше радовать контингент!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Успел разобрать двузначным кю 2 или 3 партии (точнее фусэки и тюбан большей частью).&lt;br /&gt;
&lt;br /&gt;
Интересно бы было почитать впечатления от участников. Нашел пока только &quot;репортаж&quot; от Тихона Бровко (LordZR) в &lt;a href=&quot;https://vk.com/sochi_go_club&quot;&gt;группе вконтакта сочинского го-клуба&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
В свою очередь, хочу поблагодарить супругу за терпение, Эдуарда за баннер, спонсоров за призы! И отдельное спасибо участникам - без вас, конечно же, турнира бы не было 😃&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
На этой неделе буду готовить положение к мартовскому Нагабику (предположительно 20-25 марта) - вас ждут дополнительные призы и скорее всего изменения в разделении на группы мак-магона. Следите за новостями!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;a href=&quot;http://gofederation.ru/tournaments/198416163&quot;&gt;Положение&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://goo.gl/JhV6lD&quot;&gt;Турнирная таблица&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=817&amp;amp;start=10#p7273&quot;&gt;Итоги&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
PS. Кто желает добавить своё фото в карточку игрока на сайте РФГ - пишите, помогу.&lt;br /&gt;
&lt;br /&gt;
UPD. &lt;a href=&quot;https://gofederation.ru/tournaments/198416163&quot;&gt;Пересчитали рейтинг&lt;/a&gt;&lt;/div&gt;
</description><link>http://ilqlazar.blogspot.com/2017/02/27.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-4359247213009383344</guid><pubDate>Sun, 12 Feb 2017 19:10:00 +0000</pubDate><atom:updated>2017-02-12T22:10:42.567+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Юмор</category><title>Немного юмора</title><description>Верховая езда для всех:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBscSIsBJT7WwwibMi88vdbybURhbnsN40tmfHY4B3VXxs4gTDromadZiTsx3MiMzaHwn2lMFTsXKFP31vh4bALmQLW8pe08vslI27wlkkStm0VQ4RM97LhV41xGtJbR5UZHmyGOv9zYM/s1600/%25D1%258E%25D0%25BC%25D0%25BE%25D1%2580.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBscSIsBJT7WwwibMi88vdbybURhbnsN40tmfHY4B3VXxs4gTDromadZiTsx3MiMzaHwn2lMFTsXKFP31vh4bALmQLW8pe08vslI27wlkkStm0VQ4RM97LhV41xGtJbR5UZHmyGOv9zYM/s320/%25D1%258E%25D0%25BC%25D0%25BE%25D1%2580.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
По канонам дрессировки:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&quot;Муж сварил суп. Ем его вилкой и нахваливаю. Сам сварил. По собственному желанию. Это надо поощрять.&quot;&lt;/blockquote&gt;
Про свободу:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Ехал сегодня в такси. Водитель был в прекрасном настроении: &quot;Я люблю свою работу, - говорит он, - Сам себе начальник, никто мне не указ.&quot; А я ему: &quot;Здесь налево&quot;.&amp;nbsp;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Словить медведя проще простого:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-9/16681766_1267336676691493_3748053248957838363_n.jpg?oh=bcc90564d4ea8f2a13c94b4bd563acf0&amp;amp;oe=5906CF23&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://scontent-arn2-1.xx.fbcdn.net/v/t1.0-9/16681766_1267336676691493_3748053248957838363_n.jpg?oh=bcc90564d4ea8f2a13c94b4bd563acf0&amp;amp;oe=5906CF23&quot; width=&quot;512&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Домохозяйкам посвящается:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf6maE3Ih_Sh2bZsfrEdFuWj9fS_MbrDIZXhFqBOe5SibaLw6EYF9MBWR2EdW54hldAOrE51K-zWGiy1LG4dlxTctaD0kjfqCt8LjHIKvsKGBlCPHyILOOqw0JGI_c7Zp8uKpwAsNrmKs/s1600/%25D1%258E%25D0%25BC%25D0%25BE%25D1%25802.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf6maE3Ih_Sh2bZsfrEdFuWj9fS_MbrDIZXhFqBOe5SibaLw6EYF9MBWR2EdW54hldAOrE51K-zWGiy1LG4dlxTctaD0kjfqCt8LjHIKvsKGBlCPHyILOOqw0JGI_c7Zp8uKpwAsNrmKs/s1600/%25D1%258E%25D0%25BC%25D0%25BE%25D1%25802.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Экстрасенсы - они такие:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://cs7052.vk.me/c836438/v836438389/205ce/Sjs1AYsbPvs.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://cs7052.vk.me/c836438/v836438389/205ce/Sjs1AYsbPvs.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
И снова про женщин:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJB4fNGWimBEI0EtS4ds7OHzsxaMyUuH0Qz7qOucOE17dz1yGPXvbBEx0_0DMUnhjxZ3YNcLlCkquLlqgyzIJ-2Y7sIerozrKYXQQpeBHSXkw05DKTO2ZoRGqGuYsIOrvyx-GL5JXBWlY/s1600/%25D1%258E%25D0%25BC%25D0%25BE%25D1%25803.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJB4fNGWimBEI0EtS4ds7OHzsxaMyUuH0Qz7qOucOE17dz1yGPXvbBEx0_0DMUnhjxZ3YNcLlCkquLlqgyzIJ-2Y7sIerozrKYXQQpeBHSXkw05DKTO2ZoRGqGuYsIOrvyx-GL5JXBWlY/s400/%25D1%258E%25D0%25BC%25D0%25BE%25D1%25803.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Сила гипноза:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZnLABB9ZCIkamWNhmzw-X0jcAa1EfNbqMdeumVKp3WvWTCMOPTiOnB0_yIGnvm360b12df4IHszJ1K2koVAwA1j_skAa-luiKqxMdkbcFqIiIsbuCOl91zKvxheIYrDN-lGs5v710lO8/s1600/%25D1%258E%25D0%25BC%25D0%25BE%25D1%25804.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZnLABB9ZCIkamWNhmzw-X0jcAa1EfNbqMdeumVKp3WvWTCMOPTiOnB0_yIGnvm360b12df4IHszJ1K2koVAwA1j_skAa-luiKqxMdkbcFqIiIsbuCOl91zKvxheIYrDN-lGs5v710lO8/s400/%25D1%258E%25D0%25BC%25D0%25BE%25D1%25804.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://ilqlazar.blogspot.com/2017/02/blog-post.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBscSIsBJT7WwwibMi88vdbybURhbnsN40tmfHY4B3VXxs4gTDromadZiTsx3MiMzaHwn2lMFTsXKFP31vh4bALmQLW8pe08vslI27wlkkStm0VQ4RM97LhV41xGtJbR5UZHmyGOv9zYM/s72-c/%25D1%258E%25D0%25BC%25D0%25BE%25D1%2580.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-3644025161916687558</guid><pubDate>Tue, 07 Feb 2017 14:00:00 +0000</pubDate><atom:updated>2017-02-07T22:29:39.464+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">го</category><title>Отборочный этап Командного ЧР 2017 на KGS</title><description>Не так давно был объявлен отборочный этап Командного Чемпионата России 2017. Собрали команду от Кировской области:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Магзумов Ринат - Tired - &amp;nbsp;2382&lt;br /&gt;
Шешин Александр - Nekros - &amp;nbsp;1899&lt;br /&gt;
Оглоблин Алексей - wolland - &amp;nbsp;1812&lt;br /&gt;
Лямшин Илья - Lyams - &amp;nbsp;1727&lt;br /&gt;
Манылов Михаил - Nefeste - &amp;nbsp;1674&lt;br /&gt;
Лазарев Илья - iLq (капитан) - &amp;nbsp;1634&lt;br /&gt;
Щекотов Константин - Mason - &amp;nbsp;1507&lt;br /&gt;
Лукин Антон - At0m - &amp;nbsp;910&lt;/blockquote&gt;
Игры будут проходить на KGS раз в две недели. По четыре доски.&lt;br /&gt;
&lt;br /&gt;
Сегодня (7 февраля) последний день регистрации.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://gofederation.ru/tournaments/109548478&quot;&gt;Положение&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://gofederation.ru/board/viewtopic.php?f=3&amp;amp;t=813&quot;&gt;Форум&lt;/a&gt;</description><link>http://ilqlazar.blogspot.com/2017/02/2017-kgs.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-7393928111377435380</guid><pubDate>Fri, 27 Jan 2017 15:55:00 +0000</pubDate><atom:updated>2017-01-27T18:55:11.067+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Юмор</category><title>Смешное за прошедшую неделю</title><description>В деревне нашей маркетологи то не хуже ваших городских:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://pp.vk.me/c7011/v7011856/3a5cf/TRrc3NFrET8.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://pp.vk.me/c7011/v7011856/3a5cf/TRrc3NFrET8.jpg&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Далее ...&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Всё строго!:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://wtf.jpg.wtf/700/5d/67/1485121670-5d67655efe1590d57e6e0c622d077dbf.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;246&quot; src=&quot;https://wtf.jpg.wtf/700/5d/67/1485121670-5d67655efe1590d57e6e0c622d077dbf.jpeg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Портал в каждом доме!:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieQKSS5RYQi34ui_bSbckJ2fGuxSBLQKKYm2AQ8Z0-L4XNOfn6sAJ6mf8VFI3GwPPojR7NwaguEPvB_7rthn4XtdBqEcfGAfVe7EwD4TCA78Hs7vbAhSyuSZGXwhOUhyphenhyphen6YgdTiherKagI/s1600/%25D1%258E%25D0%25BC%25D0%25BE%25D1%2580.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieQKSS5RYQi34ui_bSbckJ2fGuxSBLQKKYm2AQ8Z0-L4XNOfn6sAJ6mf8VFI3GwPPojR7NwaguEPvB_7rthn4XtdBqEcfGAfVe7EwD4TCA78Hs7vbAhSyuSZGXwhOUhyphenhyphen6YgdTiherKagI/s400/%25D1%258E%25D0%25BC%25D0%25BE%25D1%2580.png&quot; width=&quot;348&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
У нас и свои Рэмбы имеются:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://pp.vk.me/c604829/v604829243/2bf7b/jlY4cFCSuJs.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://pp.vk.me/c604829/v604829243/2bf7b/jlY4cFCSuJs.jpg&quot; width=&quot;332&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Журналист-гуманитарий:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://pbs.twimg.com/media/C2zGe4_WQAECRVV.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;245&quot; src=&quot;https://pbs.twimg.com/media/C2zGe4_WQAECRVV.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Не растерялся:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://pp.vk.me/c626331/v626331471/4a41b/SDA9-tFPAQg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;270&quot; src=&quot;https://pp.vk.me/c626331/v626331471/4a41b/SDA9-tFPAQg.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Про Сталинград:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://pp.vk.me/c836326/v836326596/1ddae/pH3yRonI9cM.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://pp.vk.me/c836326/v836326596/1ddae/pH3yRonI9cM.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Техник перестарался:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/SICsRg8OTWU/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/SICsRg8OTWU?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Не смешно, но захватывающе:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://i.yapx.ru/GFXo.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;160&quot; src=&quot;https://i.yapx.ru/GFXo.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://ilqlazar.blogspot.com/2017/01/blog-post_27.html</link><author>noreply@blogger.com (ilqlazar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieQKSS5RYQi34ui_bSbckJ2fGuxSBLQKKYm2AQ8Z0-L4XNOfn6sAJ6mf8VFI3GwPPojR7NwaguEPvB_7rthn4XtdBqEcfGAfVe7EwD4TCA78Hs7vbAhSyuSZGXwhOUhyphenhyphen6YgdTiherKagI/s72-c/%25D1%258E%25D0%25BC%25D0%25BE%25D1%2580.png" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1727917354328459690.post-5236182807495551899</guid><pubDate>Fri, 27 Jan 2017 05:55:00 +0000</pubDate><atom:updated>2017-01-27T09:25:35.211+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Акт_потребления</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Что не стоит заказывать в AliExpress</title><description>Список категорий товаров, которые запрещены для ввоза в Россию. Если будете заказывать такие товары, например, с Али, то можете огрести проблем.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://xn--b1ae2adf4f.xn--p1ai/society/consumer-market/39678-chto-nelyzya-zakazyvaty-na-aliexpress-i-dpugih-kitayskih-saytah.html&quot;&gt;Ссылка&lt;/a&gt;.</description><link>http://ilqlazar.blogspot.com/2017/01/aliexpress.html</link><author>noreply@blogger.com (ilqlazar)</author><thr:total>0</thr:total></item></channel></rss>