<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Дмитрия Серженко: заметки с тегом школа № 509</title>
<link>https://serzhenko.ru/tags/shkola-509/</link>
<description>Всю сознательную жизнь работаю в образовании.

В настоящее время — открываю Лицей информационных технологий Приморского района Санкт-Петербурга.
Ранее (в т.ч. по совместительству): зам. директора и  руководитель центра цифрового образования «ИнфинITи» школы № 509, сотрудник СПбЦОКОиИТ и Инспекции Комитета по образованию Санкт-Петербурга, заведующий ЦИО ИМЦ Петродворцового района, сотрудник поддержки ВКонтакте, инженер ЦИО ИМЦ Красносельского района, педагог дополнительного образования УМЦ «ИНФОБ» и лицея № 395, переводчик, индивидуальный предприниматель и проч., проч., проч.…

Disclaimer. Вся информация, опубликованная в этом блоге, отражает персональное мнение частного лица, даже если затрагивает рабочие темы, и не представляет официальную позицию какой-либо организации или органа власти (хотя и может с таковой позицией совпадать… или не совпадать).</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Всю сознательную жизнь работаю в образовании.

В настоящее время — открываю Лицей информационных технологий Приморского района Санкт-Петербурга.
Ранее (в т.ч. по совместительству): зам. директора и  руководитель центра цифрового образования «ИнфинITи» школы № 509, сотрудник СПбЦОКОиИТ и Инспекции Комитета по образованию Санкт-Петербурга, заведующий ЦИО ИМЦ Петродворцового района, сотрудник поддержки ВКонтакте, инженер ЦИО ИМЦ Красносельского района, педагог дополнительного образования УМЦ «ИНФОБ» и лицея № 395, переводчик, индивидуальный предприниматель и проч., проч., проч.…

Disclaimer. Вся информация, опубликованная в этом блоге, отражает персональное мнение частного лица, даже если затрагивает рабочие темы, и не представляет официальную позицию какой-либо организации или органа власти (хотя и может с таковой позицией совпадать… или не совпадать).</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Семинар «Цифровая трансформация образования: новые вызовы — новые умения»</title>
<guid isPermaLink="false">28</guid>
<link>https://serzhenko.ru/all/seminar-itns-2021/</link>
<pubDate>Wed, 24 Mar 2021 16:37:00 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/seminar-itns-2021/</comments>
<description>
&lt;p&gt;24 марта 2021 года в &lt;a href="https://school509.spb.ru"&gt;школе № 509&lt;/a&gt; прошёл &lt;a href="https://itns2021.school509.spb.ru/"&gt;выездной онлайн-семинар «Цифровая трансформация образования: новые вызовы — новые умения»&lt;/a&gt; &lt;a href="https://conf.spbcokoit.ru/"&gt;XII Всероссийской конференции с международным участием «Информационные технологии для Новой школы»&lt;/a&gt;. Конференция проводится ежегодно в рамках &lt;a href="https://eduforum.spb.ru/"&gt;Петербургского международного образовательного форума&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;В рамках семинара представлено 14 видеодокладов суммарной продолжительностью более двух часов. Административная команда и педагогический коллектив ГБОУ № 509 представили новые подходы к развитию методической системы школы, поделились опытом трансформации отдельных сегментов образовательной среды и своими ноу-хау — в части проектирования и реализации новых инструментов, преобразующих образовательную среду в соответствии с формирующимся образом цифровой школы.&lt;/p&gt;
&lt;p&gt;С материалами семинара ознакомились более 150 посетителей из Санкт-Петербурга, Москвы, Ленинградской, Кемеровской, Вологодской, Нижегородской, Омской, Калининградской, Ярославской, Амурской, Кировской, Свердловской областей, республик Карелия, Башкортостан, Татарстан, Пермского края, а также из города Минск республики Беларусь.&lt;/p&gt;
&lt;p&gt;В форме обратной связи посетители семинара отметили «интересное, содержательное знакомство с опытом школы» и высоко оценили актуальность и доступность изложения представленных материалов.&lt;/p&gt;
&lt;p&gt;В нескольких докладах — одном пленарном и нескольких секционных — поучаствовал и я.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/Tc9gyrBzaUQ?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/vZtdeKHMTnQ?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/Xz8d0lFPFbs?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/ZUlTFV9EJ4g?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/s1ihVib-aPw?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Все видеодоклады конференции постоянно доступны по ссылке: &lt;a href="https://itns2021.school509.spb.ru/"&gt;https://itns2021.school509.spb.ru/&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Онлайн-воркшоп «Проведение интеллектуальных игр (квизов) в онлайн-формате»</title>
<guid isPermaLink="false">27</guid>
<link>https://serzhenko.ru/all/online-workshop-quiz/</link>
<pubDate>Tue, 02 Mar 2021 19:28:03 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/online-workshop-quiz/</comments>
<description>
&lt;p&gt;Рассказали с &lt;a href="https://webfolio.school509.spb.ru/profile.php?id=163"&gt;Русланом Наильевичем&lt;/a&gt; о том, как мы проводим онлайн-квизы — и как их проводить в других школах.&lt;/p&gt;
&lt;p&gt;Выступление:&lt;/p&gt;
&lt;iframe src="https://vk.com/video_ext.php?oid=-93144412&amp;id=456239338&amp;hash=394886377cc5cafe&amp;hd=2" width="853" height="480" allow="autoplay; encrypted-media; fullscreen; picture-in-picture;" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;Слайды:&lt;/p&gt;
&lt;script async class="speakerdeck-embed" data-id="0d1ddbb6e09d4a7ab05b8241d525f3d8" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;p&gt;P.S. В конце — «сцена после титров», сладкий бонус ;-)&lt;/p&gt;
</description>
</item>

<item>
<title>Доклад про ботов</title>
<guid isPermaLink="false">26</guid>
<link>https://serzhenko.ru/all/doklad-pro-botov/</link>
<pubDate>Fri, 06 Nov 2020 20:12:33 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/doklad-pro-botov/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://serzhenko.ru/pictures/banner-SPO-2020.jpg" width="2013" height="819" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;29 октября 2020 года в &lt;a href="https://rcokoit.ru"&gt;Санкт-Петербургском центре оценки качества образования и информационных технологий (СПбЦОКОиИТ&lt;/a&gt;) состоялась &lt;a href="https://umr.rcokoit.ru/pages/events-it-in-education-free-soft-2020.html"&gt;XIII научно-практическая конференция «Проблемы и перспективы внедрения свободного программного обеспечения в образовательных организациях Санкт-Петербурга»&lt;/a&gt;. В этом году — в дистанционном формате.&lt;/p&gt;
&lt;p&gt;Одной из тематик секции «Свободно распространяемые системы управления и обучения» были «чат-боты в образовании».&lt;/p&gt;
&lt;p&gt;Представил в докладе и статье опыт применения чат-ботов ВКонтакте в воспитательно-образовательном процессе в нашей школы на примерах кейсов &lt;a href="https://serzhenko.ru/all/chgk-bot/"&gt;ЧГК-бота&lt;/a&gt; и &lt;a href="https://serzhenko.ru/all/bot-dlya-akcii-pomnim/"&gt;бота акции «Помним»&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Слайды:&lt;/p&gt;
&lt;script async class="speakerdeck-embed" data-id="c033d97aa42c49699f6247a1d5c51440" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
</description>
</item>

<item>
<title>Бот для акции «Помним»</title>
<guid isPermaLink="false">25</guid>
<link>https://serzhenko.ru/all/bot-dlya-akcii-pomnim/</link>
<pubDate>Thu, 07 May 2020 12:51:45 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/bot-dlya-akcii-pomnim/</comments>
<description>
&lt;p&gt;В преддверии Дня Победы ежегодно и повсеместно проходят акции в формате &lt;a href="https://www.moypolk.ru/" class="nu"&gt;«&lt;u&gt;Бессмертного полка&lt;/u&gt;»&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;В этом году, в связи с известными коронавирусными обстоятельствами, бо́льшая часть акций перешла в онлайн-формат. В частности «Российское движение школьников» &lt;a href="https://vk.com/wall-122623791_193161"&gt;запустило акцию «Помним»&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Участникам акции предлагается:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Скачать файл с рамкой;&lt;/li&gt;
&lt;li&gt;Наложить слой с рамкой на слой с фото в нужном порядке (да, рамка должна быть на переднем слое, т. к. у неё есть «уголочки», которые должны быть на фотографии, а не под);&lt;/li&gt;
&lt;li&gt;Добавить подписи (желательно — уместным шрифтом);&lt;/li&gt;
&lt;li&gt;Сохранить фото.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Очевидно, что для многих потенциальных участников акции выполнение алгоритма станет не такой уж тривиальной задачей: требуются навыки работы с графическими редакторами или хотя бы онлайн-сервисами аналогичного назначения. Либо &lt;a href="https://vk.com/@rms_spb-kak-sdelat-fotografiu-bessmertnogo-polka"&gt;использования «костылей» вроде PowerPoint’а&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Для того, чтобы повысить потенциальную вовлечённость наших обучающихся и их родителей в акцию, мы решили поэкспериментировать и максимально оптимизировать  процесс подготовки фото в рамке для публикации в школьной онлайн-колонне  «Бессмертного полка».&lt;/p&gt;
&lt;div id="vk_post_-194939024_5"&gt;&lt;/div&gt;&lt;script type="text/javascript" src="https://vk.com/js/api/openapi.js?168"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
  (function() {
    VK.Widgets.Post("vk_post_-194939024_5", -194939024, 5, 'Y45j8dVxdCE5SxHgfw_WoQ');
  }());
&lt;/script&gt;
&lt;p&gt;Был реализован следующий пользовательский сценарий:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Бот в сети ВКонтакте принимает в качестве входных данных фотографию, ФИО и (опционально) звание героя.&lt;/li&gt;
&lt;li&gt;Подготавливает изображение, присылает его пользователю.&lt;/li&gt;
&lt;li&gt;Предлагает пользователю выполнить публикацию в сообществе.&lt;/li&gt;
&lt;li&gt;Если пользователь соглашается, фото загружается в альбом сообщества и публикуется на стене с заранее заготовленным набором соответствующих хэштегов. Получившийся пост отправляется пользователю, который может принять решение о лайке, репосте (или каком-либо другом действии в рамках стандартного взаимодействия с соцсетью).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Важно, что без прямого на то намерения пользователя ничего никуда не публикуется и, пока пользователь не примет такого решения, никакие данные не выходят за пределы диалога «пользователь — бот».&lt;/p&gt;
&lt;p&gt;По сути сейчас нет никакой технической фильтрации ни текстового, ни графического контента, которые подаются на вход боту (кроме, разве что, «загрузите, пожалуйста, вертикальное фото»). Поэтому в целях предупреждения потенциального вандализма была организована команда модераторов, состоящая из педагогов и ребят-активистов, готовых оперативно устранять последствия актов вандализма, если таковые будут иметь место.&lt;/p&gt;
&lt;p&gt;Вот что получилось:&lt;/p&gt;
&lt;!-- VK Widget --&gt;&lt;div id="vk_groups"&gt;&lt;/div&gt;&lt;script type="text/javascript"&gt;
VK.Widgets.Group("vk_groups", {mode: 4, wide: 1, height: "600", width: "auto", no_cover: 1}, 194939024);
&lt;/script&gt;
&lt;p&gt;&lt;hr&gt;&lt;/p&gt;
&lt;p&gt;Дальше — чуть-чуть технических подробностей разработки. Можете смело пропустить два следующих абзаца, если вас пугают слова и аббревиатуры PHP, API, SDK, NoSQL, «токен» или «standalone» :)&lt;/p&gt;
&lt;p&gt;Технически взаимодействие с пользователем осуществляется через &lt;a href="https://vk.com/dev/bots_docs"&gt;чат-бота VK&lt;/a&gt;, серверной частью которого является PHP-приложение, написанное с использованием &lt;a href="https://github.com/VKCOM/vk-php-sdk"&gt;официального SDK VK&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Для генерации изображений используются библиотеки-обёртки над &lt;a href="https://www.php.net/manual/ru/book.image.php"&gt;GD&lt;/a&gt;: &lt;a href="https://github.com/Treinetic/ImageArtist"&gt;ImageArtist&lt;/a&gt; и &lt;a href="https://github.com/stil/gd-text"&gt;gd-text&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Для хранения состояния сессии взаимодействия с пользователем используется NoSQL-хранилище &lt;a href="https://redis.io/"&gt;Redis&lt;/a&gt; и его &lt;a href="https://github.com/nrk/predis"&gt;PHP-клиент Predis&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;В целом архитектура проекта такова, что при желании можно изменить (или расширить) платформы взаимодействия с ботом на другие соцсети и/или мессенджеры, используя их API.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Взаимодействие с пользователем осуществляется от имени специально созданного сообщества, однако в процессе разработки я столкнулся с одним логически неочевидным ограничением (однако прямо оговорённым в документации): токен доступа сообщества не позволяет загружать фотографии в альбомы сообщества и создавать записи на его стене. Это возможно только с ключом доступа пользователя, обладающего правами на такие действия в конкретном сообществе. Из этой ситуации был найден следующий выход: создано техническое standalone-приложение, для которого был получен токен пользователя-администратора сообщества с неограниченным сроком действия.&lt;/p&gt;
</description>
</item>

<item>
<title>ЧГК-бот</title>
<guid isPermaLink="false">23</guid>
<link>https://serzhenko.ru/all/chgk-bot/</link>
<pubDate>Thu, 23 Jan 2020 12:57:02 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/chgk-bot/</comments>
<description>
&lt;p&gt;С начала 2019 года я тренирую школьную команду по интеллектуальным играм.&lt;/p&gt;
&lt;p&gt;С этого учебного года она разрослась до школьного &lt;a href="https://vk.com/iq509"&gt;Клуба интеллектуальных игр&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Для координации встреч и «онлайн-тренировок» была создана беседа ВКонтакте, где время от времени мы с ребятами практиковались «раскручивать» вопросы из &lt;a href="https://db.chgk.info"&gt;Базы вопросов ЧГК&lt;/a&gt;. Во время каникул возникло острое желание, насколько это возможно, автоматизировать работу по выбору вопроса из базы и «зачёту» верного ответа.&lt;/p&gt;
&lt;p&gt;Так родился бот школьного клуба интеллектуальных игр.&lt;/p&gt;
&lt;p&gt;Методом гугления в ЖЖ-сообществе «Спортивное ЧГК» был обнаружен &lt;a href="https://ru-chgk.livejournal.com/982237.html"&gt;пост&lt;/a&gt;, описывающий XML API базы вопросов. Из этого поста можно было сделать сразу два вывода, один внезапнее другого:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;ЖЖ жив (о_0)&lt;/li&gt;
&lt;li&gt;У Базы API всё же есть.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;В результате дня изучения (вспоминания давно забытого) VK API был набросан proof-of-concept бота, который умеет:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;получать случайный вопрос из базы;&lt;/li&gt;
&lt;li&gt;писать его в чат с примитивной защитой от гугления;&lt;/li&gt;
&lt;li&gt;повторять его;&lt;/li&gt;
&lt;li&gt;выводить ответ на этот вопрос, если игроки сдаются («сливают» вопрос);&lt;/li&gt;
&lt;li&gt;читать ответы из чата;&lt;/li&gt;
&lt;li&gt;засчитывать правильные ответы и то, что похоже на правильные ответы (с точностью до е/ё, кавычек и знаков препинания);&lt;/li&gt;
&lt;li&gt;вести рейтинг игроков.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="568" data-ratio="0.81844380403458"&gt;
&lt;img src="https://serzhenko.ru/pictures/2020-01-23_11-18-56.png" width="568" height="694" alt="" /&gt;
&lt;img src="https://serzhenko.ru/pictures/2020-01-23_11-20-01.png" width="410" height="343" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;В перспективе планирую сделать командный режим игры с ботом и хочу научить бота читать ответы в других падежах, с предлогами и т. п. — т. е. научить анализировать русский текст.&lt;/p&gt;
&lt;p&gt;P.S. Приходите в &lt;a href="https://vk.com/iq509"&gt;Клуб&lt;/a&gt;, попадайте в беседу, испытывайте свой интеллект на прочность! :-)&lt;/p&gt;
</description>
</item>

<item>
<title>iУчитель</title>
<guid isPermaLink="false">24</guid>
<link>https://serzhenko.ru/all/iuchitel-2/</link>
<pubDate>Fri, 20 Dec 2019 18:26:00 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/iuchitel-2/</comments>
<description>
&lt;p&gt;&lt;a href="https://rybakovfoundation.ru/"&gt;Рыбаков Фонд&lt;/a&gt; подвёл итоги &lt;a href="https://rybakovschoolaward.ru/"&gt;Всероссийского конкурса «Школа»&lt;/a&gt;. На конкурс было подано более 2800 заявок, и по итогам работы экспертов оглашены имена 50 победителей.&lt;/p&gt;
&lt;p&gt;В число &lt;a href="https://lk.rybakovschoolaward.ru/"&gt;победителей в номинации «Я — iУчитель»&lt;/a&gt; вошёл единственный педагог из Санкт-Петербурга — Ваш покорный слуга, Дмитрий Иванович Серженко, заместитель директора по информатизации, учитель информатики и руководитель &lt;a href="https://vk.com/iq509"&gt;клуба интеллектуальных игр&lt;/a&gt; &lt;a href="https://school509.spb.ru"&gt;школы № 509&lt;/a&gt;. По итогам экспертной оценки у меня набрал 103.5 балла из 110 возможных, заняв пятое место в рейтинге среди всех участников конкурса.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://serzhenko.ru/pictures/X6p0BRWVc7A.jpg" width="1240" height="1753" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Стать частью Сообщества с большой буквы «С» — большая честь для меня и показатель того, что я двигаюсь в верном направлении.&lt;/p&gt;
&lt;p&gt;В конкурсе «Школа» Рыбаков Фонд объединил лучшее из трехлетней истории своих конкурсных программ «ТОПШкола» и «iУчитель», благодаря которым возникла уникальная среда для обмена опытом. Конкурс «Школа» запущен, чтобы поддержать лучшие практики школьных команд и учителей, раскрывающие потенциал ученика и преобразующие школу в центр социума. Организаторы конкурса убеждены: школа — это основа для становления личности и всего общества, именно поэтому вокруг школы должны быть сосредоточены ресурсы и усилия самых разных общественных институтов и неравнодушных граждан.&lt;/p&gt;
</description>
</item>

<item>
<title>Geek Teachers Fest</title>
<guid isPermaLink="false">21</guid>
<link>https://serzhenko.ru/all/geek-teachers-fest/</link>
<pubDate>Fri, 01 Nov 2019 07:45:00 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/geek-teachers-fest/</comments>
<description>
&lt;p&gt;31 октября 2019 года в школе № 509 мы провели грандиозный фестиваль-праздник для учителей &lt;b&gt;Geek Teachers Fest&lt;/b&gt;, организованный проектом &lt;a href="https://geekteachers.ru"&gt;Geek Teachers&lt;/a&gt; в партнёрстве со школой № 509 при генеральной поддержке Рыбаков Фонда.&lt;/p&gt;
&lt;p&gt;Посетителями фестиваля стали более полутора тысяч педагогов со всей России, которые приняли участие в образовательно-развлекательной программе в стиле гавайской вечеринки. Главная миссия фестиваля — показать, что образование — это вовсе не обязательно «серьёзно» и «скучно», а вполне может быть и «интересно» и «неформально»!&lt;/p&gt;
&lt;p&gt;Очень круто быть частью такого события и ещё более приятно быть в команде организаторов.&lt;/p&gt;
&lt;p&gt;Гостями мероприятия стали начальник Отдела образования администрации Красносельского района Санкт-Петербурга О. С. Нестеренкова, начальник отдела образовательных программ АНО «Россия — страна возможностей» А. С. Богданцев, первый проректор СПбАППО Ю. В. Ээльмаа, директор СПбЦОКОиИТ А. Б. Федосов.&lt;/p&gt;
&lt;iframe src="//vk.com/video_ext.php?oid=-128649079&amp;id=456239112&amp;hash=aed9ab9020e0c37a&amp;hd=2" width="100%" height="480" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
</description>
</item>

<item>
<title>Акция «Читайте с любовью»</title>
<guid isPermaLink="false">8</guid>
<link>https://serzhenko.ru/all/i-love-reading/</link>
<pubDate>Sun, 09 Apr 2017 18:37:57 +0300</pubDate>
<author></author>
<comments>https://serzhenko.ru/all/i-love-reading/</comments>
<description>
&lt;p&gt;14 февраля 2017 в школе № 509 впервые прошла &lt;a href="https://vk.com/wall-128649079_416"&gt;акция «Читайте с любовью»&lt;/a&gt;, приуроченная ко Дню книгодарения и Дню всех влюблённых.&lt;/p&gt;
&lt;p&gt;В рамках этой акции в холле третьего этажа у библиотеки было организовано пространство для буккроссинга: каждый желающий ученик или сотрудник мог принести книгу и оставить её в дар кому-то конкретному, оставить на библиотечной тележке, чтобы кто-то впоследствии выбрал для себя... или вообще подарить школе, библиотеке.&lt;/p&gt;
&lt;p&gt;Участники акции получали на память сувенир — значок с символикой акции.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://serzhenko.ru/pictures/5NR0Si7EdEk.jpg" width="1312" height="984" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Для большей интерактивности и для увлечения «мимо проходящих» мы задействовали инфопанель, располагающуюся в этом же холле. На панели в течение всего дня отображался счётчик подаренных книг.&lt;/p&gt;
&lt;h2&gt;Как это работает?&lt;/h2&gt;
&lt;p&gt;Инфопанель в этом холле представляет собой SmartTV, напрямую (без ПК) подключённый к школьной локальной сети по Ethernet. Обычно изображение для трансляции (видео, фото, объявления) телевизор берёт со школьного медиасервера. Самый оптимальный вариант для трансляции динамического контента — использование встроенного в ПО телевизора веб-браузера.&lt;/p&gt;
&lt;p&gt;Была свёрстана веб-страница, на которой отображается счётчик подаренных книг. Раз в 5 секунд страница отправляет AJAX-запрос на сервер и запрашивает значение счётчика. Если в ответ приходит значение, отличное от текущего, счётчик обновляется с анимацией.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://serzhenko.ru/pictures/--_lg_55lw5600_side.png" width="2500" height="2500" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Как же обновляется значение на сервере? Был свёрстан второй интерфейс — для управления счётчиком. Он адаптирован для мобильных устройств. Управляющий интерфейс содержит две кнопки: «&amp;minus;» и «&amp;plus;» — а также текущее значение счётчика. Нажатие каждой из кнопок вызывает AJAX-запрос на сервер, содержащий один параметр — запрошенное действие. Соответственно, происходит либо декремент, либо инкремент счётчика.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://serzhenko.ru/pictures/--2017-04-09--18.11.40_iphone5s_gold_portrait.png" width="2000" height="2000" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Специально обученный волонтёр, принимая книжку, выдаёт значок и нажимает кнопку в своём мобильном интерфейсе. На сервер уходит запрос, обновляется значение, примерно в течение 5 секунд счётчик обновляется на экране — как раз за это время волонтёр успевает помочь прикрепить значок :) Участник акции счастлив — видит свой вклад визуализированно: «вот я принёс книжку и меня посчитали!»&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://serzhenko.ru/pictures/iluvreading.gif" width="480" height="270" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Что интересно — в ходе подобной акции ссылка на страницу со счётчиком в принципе без опаски может быть размещена в публичном пространстве (в соцсетях и/или на сайте школы). Тогда следить за прогрессом акции смогут не только ученики внутри школы, но и, например, их родители. Но мы в этот раз не размещали. :)&lt;/p&gt;
&lt;p&gt;Одноразовая ли это история? Думаю, что нет. Очень легко адаптировать этот счётчик к любым другим акциям — считать количество отжиманий в ходе спортивных праздников, количество сданных использованных батареек (спасённых ёжиков) в рамках экологических акций и т. п. :)&lt;/p&gt;
&lt;h2&gt;Чуть-чуть сугубо технических деталей&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Использованные технологии, библиотеки, фреймворки:&lt;/i&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PHP&lt;/li&gt;
&lt;li&gt;jQuery&lt;/li&gt;
&lt;li&gt;CSS-фреймворк &lt;a href="http://getbootstrap.com/"&gt;Bootstrap 3&lt;/a&gt; для ускорения и упрощения вёрстки&lt;/li&gt;
&lt;li&gt;key-value хранилище &lt;a href="http://redis.io"&gt;Redis&lt;/a&gt; и php-библиотека &lt;a href="https://github.com/nrk/predis"&gt;Predis&lt;/a&gt; для работы с ним&lt;/li&gt;
&lt;li&gt;JS-библиотека &lt;a href="http://flipclockjs.com/"&gt;FlipClock&lt;/a&gt; для создания анимированного счётчика в виде «циферблата»&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Значение на сервере хранится в key-value хранилище Redis в виде одного целого числа. На уровне хранилища поддерживаются атомарные операции инкремента/декремента.&lt;/p&gt;
&lt;p&gt;Почему делается pull-запрос с клиентской стороны раз в 5 секунд, а не push с сервера или long-polling? Потому что браузер телевизора иногда ведёт себя странно при, казалось бы, самых банальных операциях. Например, вылетает при просмотре YouTube-роликов (через браузер, а не спец. приложение). Поэтому принято решение, во избежание лишних крэшей, максимально упростить клиентский код.&lt;/p&gt;
</description>
</item>


</channel>
</rss>