<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Ptath.ru]]></title><description><![CDATA[Записки о разном]]></description><link>https://ptath.ru/</link><image><url>https://ptath.ru/favicon.png</url><title>Ptath.ru</title><link>https://ptath.ru/</link></image><generator>Ghost 3.0</generator><lastBuildDate>Wed, 24 Nov 2021 06:57:34 GMT</lastBuildDate><atom:link href="https://ptath.ru/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[FFmpeg и NVENC]]></title><description><![CDATA[<p>Шпаргалка по сборке FFmpeg с NVENC H.264 и H.265 на последней Ubuntu LTS (18.04). Использование мощи видеокарты от NVIDIA для обработки видео, в моем случае 1080p60 обработалось быстрее в 4 раза чем на процессоре, ну и при этом совершенно не грузило систему (видеокарта тоже даже не нагрелась)</p>]]></description><link>https://ptath.ru/ffmpeg-nvenc/</link><guid isPermaLink="false">5d73c28075fb0a0526fbe09b</guid><category><![CDATA[ffmpeg]]></category><category><![CDATA[linux]]></category><category><![CDATA[h.264]]></category><category><![CDATA[h.265]]></category><category><![CDATA[nvenc]]></category><category><![CDATA[nvidia]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Sun, 08 Sep 2019 03:15:00 GMT</pubDate><media:content url="https://ptath.ru/content/images/2019/09/--------------2019-09-08---1.04.35.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://ptath.ru/content/images/2019/09/--------------2019-09-08---1.04.35.jpg" alt="FFmpeg и NVENC"><p>Шпаргалка по сборке FFmpeg с NVENC H.264 и H.265 на последней Ubuntu LTS (18.04). Использование мощи видеокарты от NVIDIA для обработки видео, в моем случае 1080p60 обработалось быстрее в 4 раза чем на процессоре, ну и при этом совершенно не грузило систему (видеокарта тоже даже не нагрелась).</p><h3 id="-">Лирическое отступление</h3><p>Вот уже пару лет есть работающая схема по добавлению потока RTSP камер наблюдения в HomeKit и <a href="https://github.com/KhaosT/homebridge-camera-ffmpeg">вот она</a>. Это плагин для HomeBridge, есть иные костыли, но суть одна, всё завязано на конвертации RTSP потока в RTMP и скармливании его home.app. Самым простым способом сделать это является перекодировка, а так как обычно под рукой линуксоподобная система — ffmpeg (avconv, прочее, но в первую очередь именно ffmpeg).</p><p>Для умных домов преимущественно используют Raspberry Pi и оно не может нормально кодировать видео в силу слабого процессора. Сборка ffmpeg (в дистрибутивах Raspbian его нет именно потому что нормальный человек не должен встречаться с такими тормозами) на малинке занимает 40-50 минут и работает оно откровенно плохо, кадры дропаются, малинка греется даже при одном потоке, а если двое хотят одновременно посмотреть камеры происходит коллапс. Даже h264_omx проблему полностью не решает, нужно нормальное железо и это обычный компьютер. Даже вшивый Celeron вполне прилично справляется с задачей, но есть способ еще лучше.</p><!--kg-card-begin: markdown--><p>У меня есть ненужная система на <code>Intel(R) Celeron(R) CPU G3930 @ 2.90GHz</code> и <code>GeForce GTX 1060</code>, с этим железом можно добиться удивительных результатов малой кровью, не загружая особо процессор и одновременно показывая видео с камер на 7 устройств (может и больше, у меня нету просто столько конечных устройств).</p>
<!--kg-card-end: markdown--><p>Сейчас мы соберем на последней серверной убунте FFmpeg с аппаратной поддержкой кодирования H.264 и оно будет быстрым, очень быстрым. В тестах видео fullhd кодировалось в 4-6 раз быстрее, чем стандартным кодеком x264 через процессор.</p><h3 id="--1">Всякое:</h3><p>Ставим пакеты </p><!--kg-card-begin: markdown--><pre><code>sudo apt install build-essential git yasm unzip wget mc sysstat nasm 
libavcodec-dev libavformat-dev libavutil-dev pkgconf g++ freeglut3-dev 
libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev libx265-dev libnuma-dev
</code></pre>
<!--kg-card-end: markdown--><h3 id="--2">Драйвера:</h3><p>Ставим CUDA <a href="https://developer.nvidia.com/cuda-downloads">с родного сайта</a>, инструкции тут (но они могли измениться, лучше кликнуть по ссылке)</p><!--kg-card-begin: markdown--><pre><code>wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository &quot;deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /&quot;
sudo apt-get update
sudo apt-get -y install cuda
reboot
</code></pre>
<!--kg-card-end: markdown--><p>Проверяем что всё работает и драйвера встали</p><!--kg-card-begin: markdown--><pre><code>nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.87.00    Driver Version: 418.87.00    CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0 Off |                  N/A |
| 33%   28C    P0    28W / 120W |      0MiB /  3019MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
</code></pre>
<!--kg-card-end: markdown--><p>Добавляем переменные в PATH. И так каждый раз после перезагрузки для <strong>сборки</strong> ffmpeg, потом не нужно.</p><!--kg-card-begin: markdown--><pre><code>export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
</code></pre>
<!--kg-card-end: markdown--><p>Качаем и ставим <a href="https://developer.nvidia.com/nvidia-video-codec-sdk">NVIDIA video codek SDK</a> (нужна регистрация), указываем свою версию, а не 9.0.20:</p><!--kg-card-begin: markdown--><pre><code>unzip Video_Codec_SDK_9.0.20.zip
sudo cp Video_Codec_SDK_9.0.20/Samples/common.mk /usr/local/include/
</code></pre>
<!--kg-card-end: markdown--><h3 id="-ffmpeg">Ставим FFmpeg</h3><p>Самое нужное это собсно поддержка nv-codec</p><!--kg-card-begin: markdown--><pre><code>git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install
</code></pre>
<!--kg-card-end: markdown--><p>Поддержка H.264. Не уверен что оно нужно на 18.04 (у меня был автоматически установлен), но на всякий случай последняя версия:</p><!--kg-card-begin: markdown--><pre><code>git clone https://code.videolan.org/videolan/x264.git
cd x264/
./configure --disable-cli --enable-static --enable-shared --enable-strip
make
sudo make install
sudo ldconfig
</code></pre>
<!--kg-card-end: markdown--><p>Сам FFmpeg:</p><!--kg-card-begin: markdown--><pre><code>git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg/
./configure --enable-nonfree --enable-nvenc --enable-libx264 --enable-libx265 --enable-gpl --enable-cuda --enable-cuvid
make
sudo make install
</code></pre>
<!--kg-card-end: markdown--><p>Убеждаемся что мы можем кодировать H.264 и H.265 с помощью видеокарты:</p><!--kg-card-begin: markdown--><pre><code>ptath@castle:~/ffmpeg$ ffmpeg -codecs | grep nvenc
ffmpeg version N-94809-g12b909ba31 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --enable-nonfree --enable-nvenc --enable-libx264 --enable-libx265 --enable-gpl --enable-cuda --enable-cuvid
  libavutil      56. 35.100 / 56. 35.100
  libavcodec     58. 56.101 / 58. 56.101
  libavformat    58. 32.104 / 58. 32.104
  libavdevice    58.  9.100 / 58.  9.100
  libavfilter     7. 58.102 /  7. 58.102
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_cuvid ) (encoders: libx264 libx264rgb h264_nvenc h264_v4l2m2m nvenc nvenc_h264 )
 DEV.L. hevc                 H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_cuvid ) (encoders: libx265 nvenc_hevc hevc_nvenc )
</code></pre>
<!--kg-card-end: markdown--><p>О да, мы можем =) А теперь тесты:</p><!--kg-card-begin: markdown--><pre><code>wget http://download4.dvdloc8.com/trailers/divxdigest/i_am_legend-1080p_blu-ray_trailer.zip
unzip i_am_legend-1080p_blu-ray_trailer.zip 

time ffmpeg -i I\ Am\ Legend\ -\ Trailer.mp4 -vcodec libx264 -b:v 5M -acodec copy Output_libx264.mp4
...
real	2m33,211s
user	4m58,844s
sys	0m0,608s

time ffmpeg -i I\ Am\ Legend\ -\ Trailer.mp4 -vcodec libx265 -b:v 5M -acodec copy Output_libx265.mp4
...
real	8m17,279s
user	15m57,109s
sys	0m0,588s

time ffmpeg -i I\ Am\ Legend\ -\ Trailer.mp4 -vcodec h264_nvenc -b:v 5M -acodec copy Output_h264_nvenc.mp4
...
real	0m20,966s
user	0m27,845s
sys	0m0,620s

time ffmpeg -i I\ Am\ Legend\ -\ Trailer.mp4 -vcodec hevc_nvenc -b:v 5M -acodec copy Output_hevc_nvenc.mp4
...
real	0m20,990s
user	0m28,007s
sys	0m0,650s
</code></pre>
<!--kg-card-end: markdown--><p>Собственно мы наблюдаем космическую скорость, особенно когда дело доходит до H.265 — с нашим новым кодеком мы справляемся за 20 секунд вместо 8 с половиной минут через x265 (стоит отметить что процессор — Celeron, на i7 должно быть побыстрей конечно).</p><p>Практическое применение — обработка видео со всяких там action-камер, ну и конечно же в системах умного дома на базе HomeKit. В дополнение к малинке ничто не мешает отдельно использовать нормальный сервер исключительно под видео.</p>]]></content:encoded></item><item><title><![CDATA[Столкнулся с новым удивительным типом фрода]]></title><description><![CDATA[<p>За пару дней до истечения срока домена приходит вот такое вот письмо (героически прорвавшись через спам-фильтры):</p><blockquote>во избежании отключения домена пролонгируйте домен в кабинете регистратора</blockquote><blockquote>заканчивается срок регистрации сайта DOMAIN.TLD</blockquote><blockquote>по ссылке оплата извещения - http://skulakov.ru?DOMAIN.TLD</blockquote><blockquote>Сообщение было отправлено 08/07/2019 21:00:27</blockquote>]]></description><link>https://ptath.ru/stolknulsia-s-novym-udivitielnym-tipom-froda/</link><guid isPermaLink="false">5d4b1c7b75fb0a0526fbe05b</guid><category><![CDATA[фрод]]></category><category><![CDATA[извещение]]></category><category><![CDATA[домен]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Wed, 07 Aug 2019 19:16:14 GMT</pubDate><media:content url="https://ptath.ru/content/images/2019/08/1474889746144218091.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://ptath.ru/content/images/2019/08/1474889746144218091.jpg" alt="Столкнулся с новым удивительным типом фрода"><p>За пару дней до истечения срока домена приходит вот такое вот письмо (героически прорвавшись через спам-фильтры):</p><blockquote>во избежании отключения домена пролонгируйте домен в кабинете регистратора</blockquote><blockquote>заканчивается срок регистрации сайта DOMAIN.TLD</blockquote><blockquote>по ссылке оплата извещения - http://skulakov.ru?DOMAIN.TLD</blockquote><blockquote>Сообщение было отправлено 08/07/2019 21:00:27 автоматически и не требует ответа.</blockquote><blockquote>в случае если домен не будет пролонгирован в течении суток, он будет удален из реестра регистратора. И станет доступен для регистрации иным лицам</blockquote><p>DOMAIN.TLD это мой реальный домен в зоне .ru, который заканчивается через три дня (продление оплачено давно). Отправитель "Уведомление" evelina.makarkina.78@bk.ru.</p><p>Как можно видеть из примера, в ссылку можно подставить любой домен и в результате оно перекинет на страницу оплаты на qiwi:</p><figure class="kg-card kg-image-card"><img src="https://ptath.ru/content/images/2019/08/--------------2019-08-07---22.45.01.png" class="kg-image" alt="Столкнулся с новым удивительным типом фрода"></figure><p>Стоит отметить изящество, в тексте письма нет ни слова о том, что это ссылка на оплату этого домена, это просто оплата <em>извещения</em> — напоминания о том, что домен надо оплатить <em>в кабинете регистратора</em> =)</p><p>Толкуя буквально, это и не фрод вовсе. Например если в почтовый ящик бросят <em>извещение</em> о необходимости оплаты коммуналки, но в извещении будут реквизиты для оплаты <em>извещения</em>.</p><p>Но ежели такое письмо попадет невнимательному директору, почему б и не оплатить? Жаль что оформление, орфография, конечный домен и вообще презентабельность хромают, выхлоп с такого фрода наверняка был бы побольше.</p>]]></content:encoded></item><item><title><![CDATA[Гаражная дверь/ворота (теория)]]></title><description><![CDATA[<p>Сегодня мы будем начинать делать умные гаражные ворота. Я уже собрал физическую часть, но вчерне — картинок пока не будет, а программная часть не отвечает собственным стандартам качества и поэтому это будет цикл статей. Собственно эта публикация — облагороженный черновик чтобы не забыть, второй раз такое собрать без инструкции я не смогу</p>]]></description><link>https://ptath.ru/garage-door-1/</link><guid isPermaLink="false">5ced86569ee55a0d5b09786d</guid><category><![CDATA[iot]]></category><category><![CDATA[гараж]]></category><category><![CDATA[ворота]]></category><category><![CDATA[автоматизация]]></category><category><![CDATA[home.app]]></category><category><![CDATA[apple home]]></category><category><![CDATA[esp8266]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Sun, 07 Apr 2019 18:32:19 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1529724778170-491b776b49cc?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1529724778170-491b776b49cc?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Гаражная дверь/ворота (теория)"><p>Сегодня мы будем начинать делать умные гаражные ворота. Я уже собрал физическую часть, но вчерне — картинок пока не будет, а программная часть не отвечает собственным стандартам качества и поэтому это будет цикл статей. Собственно эта публикация — облагороженный черновик чтобы не забыть, второй раз такое собрать без инструкции я не смогу =)</p><p>Ворот у меня двое, уличные и гаражные, секционные и рольставни (рольворота, мелкие секции), производитель Doorhan, модели неважны. Важно что секционные 24В, а рольворота 12В. Ворота управляются пультом с двумя кнопками (от каждых ворот) и при нажатии на кнопку последовательно открывают, останавливают и закрывают. Нажимать кнопки можно примерно раз в секунду, быстрее иногда не срабатывает. Обе модели предусматривают подключение внешнего пульта-выключателя и этим мы будем пользоваться. Для откатных ворот всё будет совершенно аналогично.</p><p>Есть возможность купить ресивер/трансмиттер, который управляет устройствами по радиоканалу частотой 433Мгц, но ворота умные и не позволяют копировать пульты — их надо прописывать в приёмник. Это тоже решается RF-модулем другого типа, но я буду делать по-другому — через внешний выключатель. По замыслу производителя это проводная кнопка на стене, по нажатию которой происходит то же, что и при нажатии на пульт. На 0,2 секунды надо замкнуть вот тут:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://ptath.ru/content/images/2019/04/--------------2019-04-07---21.50.14.png" class="kg-image" alt="Гаражная дверь/ворота (теория)"></figure><p>Если замкнуть и держать (или просто передержать), ворота будут дрыгаться туда-сюда в бесконечном цикле стоп/поехали. Поэтому производитель рекомендуется возвратную кнопку с пружинкой (или использовать 4-Stop).</p><p><strong>Задача-минимум</strong>: добавить ворота в <a href="https://www.apple.com/ru/ios/home/">Home.app</a>, чтобы управлять ими (вкл/выкл/стоп), смотреть статус (открыто/закрыто/непонятно/обнаружено препятствие), получать уведомления об открытии при постановке на охрану.</p><p><strong>Задача-максимум</strong>: получить полный контроль для автоматизации не через Home.app (например если летом в дневное время температура в гараже больше 28 градусов (или влажность больше чем на улице на 27 процентов) и дома взрослые, открыть гараж, и если после захода солнца в нем никого и вручную его не открывали, закрыть его), навешать больше датчиков.</p><p><strong>Убер-задача:</strong> повесить это всё (2 ворот, несколько датчиков) на одну управляющую железку. <strong>Бонус:</strong> открывать ворота на узкую щель чтобы кот успел свалить из гаража, закрыть ворота за котом, сообщить об этом факте.</p><p>Нам нужно следующее:</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th style="text-align:left">Название</th>
<th style="text-align:left">Что делает</th>
<th style="text-align:center">Обязательно</th>
<th style="text-align:center">Цена</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">ESP8266</td>
<td style="text-align:left">Управляет всем этим</td>
<td style="text-align:center">да</td>
<td style="text-align:center">170 руб.</td>
</tr>
<tr>
<td style="text-align:left">Питание для ESP8266</td>
<td style="text-align:left">В принципе, если модуль ворот 12-вольтовый, можно запитать напрямую от него. Иначе подойдет обычная microusb зарядка для телефона</td>
<td style="text-align:center">да</td>
<td style="text-align:center">30-700 руб.</td>
</tr>
<tr>
<td style="text-align:left">Реле 3/5В</td>
<td style="text-align:left">ESP8266 будет переключать это реле, которое будет замыкать нужные нам контакты в блоке ворот</td>
<td style="text-align:center">да</td>
<td style="text-align:center">150x2 руб.</td>
</tr>
<tr>
<td style="text-align:left">Магнитоконтактный извещатель</td>
<td style="text-align:left">Получить статус ворот — &quot;открыты или нет&quot;. А еще мы можем получить статус &quot;закрыты или нет&quot;, поэтому их надо два на каждые ворота</td>
<td style="text-align:center">нет</td>
<td style="text-align:center">(70-500)x4 руб.</td>
</tr>
<tr>
<td style="text-align:left">Датчик препятствия</td>
<td style="text-align:left">Чтобы блокировать закрытие если что-то мешает. Я не смог найти, пока собираю без него</td>
<td style="text-align:center">нет</td>
<td style="text-align:center">300 руб.?</td>
</tr>
<tr>
<td style="text-align:left">Датчик температуры/влажности</td>
<td style="text-align:left">Чтобы знать что происходит в гараже и на улице</td>
<td style="text-align:center">нет</td>
<td style="text-align:center">40-300 руб.</td>
</tr>
<tr>
<td style="text-align:left">Датчик движения</td>
<td style="text-align:left">Чтобы не закрыть в гараже кота =)</td>
<td style="text-align:center">нет</td>
<td style="text-align:center">70-300 руб.</td>
</tr>
<tr>
<td style="text-align:left"></td>
<td style="text-align:left"></td>
<td style="text-align:center"></td>
<td style="text-align:center">~1300-2000 руб.</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Используемое программное обеспечение:</p><ul><li><a href="https://github.com/arendst/Sonoff-Tasmota">sonoff-tasmota</a> — софт для esp8266, умеет всё. Получает информацию с датчиков и управляет переключателями через <a href="http://mqtt.org">mqtt</a>.</li><li><a href="https://mosquitto.org">Mosquitto</a> — брокер mqtt.</li><li><a href="https://nodered.org">nodered</a> — мозг автоматизации. Создает в Home.app виртуальный аксессуар — гаражные ворота, читает по mqtt информацию с датчиков, анализирует её и туда же отправляет команды.</li></ul><p>Тут надо остановиться, выдохнуть и посмотреть вот сюда: <a href="https://github.com/RavenSystem/esp-homekit-devices/wiki/RavenCore#8-garage-door">RavenCore</a>. Это прошивка для ESP8266, которая не требует ничего из вышеперечисленного и выполняет те же функции, вещь в себе. Она <em>не требует</em> эмуляции Моста (NodeRED, Homebridge), устройство с ней добавляется как отдельный аксессуар и даже если домашний сервер ляжет, все будет работать. Минус один — никакой автоматизации, никаких датчиков температуры/влажности (только открыто/закрыто и [в будущем] препятствия). Оно стабильно, пользовался около месяца, нареканий нет. Вдыхаем обратно, сейчас мы будем делать хардкорно и без компромиссов.</p><p>Настройка sonoff-tasmota  сложна и потребовала от меня не одного подхода чтобы разобраться. В это время я по неаккуратности спалил перепаянный на реле Sonoff Basic, но это и к лучшему — к Sonoff можно было подключить лишь один датчик, а к NodeMCU v3 — целых 5.</p><p>Тут основная сложность в подключении нескольких датчиков одновременно и переделки выключателя в "дёргалку" — я писал в начале про 0.2 секунды. Всё это будем делать программно.</p><p>Часть 2 — собираем железо (тут будет ссылка)</p><p>Часть 3 — настраиваем софт (тут будет ссылка)</p>]]></content:encoded></item><item><title><![CDATA[Скрипт/демон для перезапуска или перезагрузки при потере сети]]></title><description><![CDATA[<p>У пользователей <a href="http://homebridge.io">Homebridge</a> (и не только) существует серьезная проблема при потере сети устройством, даже на несколько секунд.</p><p>После этого остальные устройства сети, в том числе iOS, Apple TV не видят этот хаб и Homebridge надо перезапускать вручную — он работает как работал и не ведает о произошедшей беде.</p><p>Скорее всего дело</p>]]></description><link>https://ptath.ru/skript-diemon-dlia-pieriezapuska-ili-pieriezaghruzki/</link><guid isPermaLink="false">5ced86569ee55a0d5b09786b</guid><category><![CDATA[iot]]></category><category><![CDATA[raspbian]]></category><category><![CDATA[homebridge]]></category><category><![CDATA[script]]></category><category><![CDATA[hap]]></category><category><![CDATA[daemon]]></category><category><![CDATA[github]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Sun, 31 Mar 2019 07:17:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1531725308662-76bf5ebb43f3?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1531725308662-76bf5ebb43f3?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Скрипт/демон для перезапуска или перезагрузки при потере сети"><p>У пользователей <a href="http://homebridge.io">Homebridge</a> (и не только) существует серьезная проблема при потере сети устройством, даже на несколько секунд.</p><p>После этого остальные устройства сети, в том числе iOS, Apple TV не видят этот хаб и Homebridge надо перезапускать вручную — он работает как работал и не ведает о произошедшей беде.</p><p>Скорее всего дело в том, что <em>при запуске </em>Homebridge рассылает в сеть <a href="https://en.wikipedia.org/wiki/Multicast_DNS">mdns</a> пакеты о своём присутствии, а при отсутствии сети всё теряется и другие устройства его не видят до перезапуска. Аналогичная фигня со всеми подобными приложениями, например Node-RED.</p><p>Набросал скрипт и демон для него, который эту проблему решает. Оно постоянно пингует рутер и если нет ответа, <em>запоминает</em> это. Когда сеть появляется, выполняется пользовательский скрипт, например перезапускается Homebridge, любой другой сервис или вообще перезагружается устройство (иногда так быстрее).</p><p>Скрипт называется <a href="https://github.com/ptath/pi-badnetwork">badnetwork</a>, запустить установку (с инсталляцией в systemd) одной командой:</p><pre><code>wget -q -N -O /tmp/pi-badnetwork-install.sh https://github.com/ptath/pi-badnetwork/raw/master/pi-badnetwork-install.sh &amp;&amp; chmod +x /tmp/pi-badnetwork-install.sh &amp;&amp; /tmp/pi-badnetwork-install.sh</code></pre>]]></content:encoded></item><item><title><![CDATA[Кулер для Raspberry Pi]]></title><description><![CDATA[<p>Купил в самом сердце Китая корпус для Raspberry Pi с вентилятором aka кулером. Все хорошо, но китаец предлагает его тупо воткнуть в пины питания на малинке, а это плохо. Во-первых, он шумит (несильно, но шумит!), а во-вторых что-то там с электричеством, транзисторы и всё такое.</p><p>Электрику даже на уровне школы</p>]]></description><link>https://ptath.ru/pi-cooler/</link><guid isPermaLink="false">5ced86569ee55a0d5b097869</guid><category><![CDATA[iot]]></category><category><![CDATA[raspbian]]></category><category><![CDATA[script]]></category><category><![CDATA[cooler]]></category><category><![CDATA[охлаждение]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Thu, 28 Mar 2019 11:50:00 GMT</pubDate><media:content url="https://ptath.ru/content/images/2019/03/rpi1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://ptath.ru/content/images/2019/03/rpi1-1.jpg" alt="Кулер для Raspberry Pi"><p>Купил в самом сердце Китая корпус для Raspberry Pi с вентилятором aka кулером. Все хорошо, но китаец предлагает его тупо воткнуть в пины питания на малинке, а это плохо. Во-первых, он шумит (несильно, но шумит!), а во-вторых что-то там с электричеством, транзисторы и всё такое.</p><p>Электрику даже на уровне школы я не помню, но тонко чую моменты когда можно накосячить, поэтому либо обращаюсь к специалистам, либо спрашиваю у Google (а потом проверяю у специалистов).</p><p>Поэтому я нашёл в интернетах <a href="https://hackernoon.com/how-to-control-a-fan-to-cool-the-cpu-of-your-raspberrypi-3313b6e7f92c">вот эту инструкцию</a> и техническую часть исполнил по ней. Потребовалась пара проводочков и транзистор, в местном магазине 40 рублей за всё. Получилось аккуратненько, если б не прозрачный корпус было б вообще превосходно.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/rpi2.jpg" width="3569" height="3016" alt="Кулер для Raspberry Pi"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/rpi3.jpg" width="3356" height="2833" alt="Кулер для Raspberry Pi"></div></div></div><figcaption>Raspberry Pi 3B+ с регулируемым кулером</figcaption></figure><p>Однако ж в статье автор предлагает использовать скрипт на питоне и мне кажется что это перебор. Я старомоден и уверен что запуск чего-то тяжёлого для трех строчек кода — расточительство.</p><p>В разультате за один вечер я написал <a href="https://github.com/ptath/pi-cooler">вот этот скрипт на bash</a> и оно прекрасно работает уже больше недели (Raspbian OS). По ссылке также мини-инструкция как его установить одной командой и добавить демоном для постоянной работы. Если запускать вручную — только через <code>sudo</code>, это нужно для доступа к пинам RPI.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-27---23.04.19.png" class="kg-image" alt="Кулер для Raspberry Pi"><figcaption>Остановка демона, ручной запуск скрипта, повторный запуск демона</figcaption></figure><p>У меня рабочая температура малинки составляет 50-55 градусов. Кулер включается после 55 (настраивается в скрипте) и после снижения температуры сразу выключается (опрашивает каждые 5 секунд, тоже настраивается в скрипте). В моём случае это несколько раз в день, во время безумных экспериментов =)</p><p>Чтобы поправить конфигурацию: <code>nano ~/scripts/cooler.sh</code> и там в самом начале меняем значения:</p><pre><code>GPIO_N="18" # Set GPIO used to control fan (default 18)
TARGET_TEMP="55" # Set target CPU temperature (default 55)
POLL_INT="15" # Polling time in seconds (default 5)</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---23.20.30.png" class="kg-image" alt="Кулер для Raspberry Pi"><figcaption>Работа демона`</figcaption></figure>]]></content:encoded></item><item><title><![CDATA[О технической и программной стороне умного дома]]></title><description><![CDATA[<p>Итак, прямо сейчас мы наблюдаем (или в ближайшем времени) будем наблюдать стремительное развитие IoT и, самое главное, внедрение на потребительском уровне. Цены падают, количество решений увеличивается, а возможности просто прекрасные.</p><p>Сейчас даже в Леруа Мерлен есть стенд "умный дом", где по сказочным ценам продаются какие-то отдельные штуки. В основном всё</p>]]></description><link>https://ptath.ru/o-tiekhnichieskoi-storonie-umnogho-doma/</link><guid isPermaLink="false">5ced86569ee55a0d5b09786a</guid><category><![CDATA[iot]]></category><category><![CDATA[умный дом]]></category><category><![CDATA[Alexa]]></category><category><![CDATA[homekit]]></category><category><![CDATA[apple]]></category><category><![CDATA[apple home]]></category><category><![CDATA[google home]]></category><category><![CDATA[raspberry pi]]></category><category><![CDATA[esp8266]]></category><category><![CDATA[mosquitto]]></category><category><![CDATA[zigbee]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Tue, 26 Mar 2019 19:01:49 GMT</pubDate><media:content url="https://ptath.ru/content/images/2019/03/internetofthings-01.png" medium="image"/><content:encoded><![CDATA[<img src="https://ptath.ru/content/images/2019/03/internetofthings-01.png" alt="О технической и программной стороне умного дома"><p>Итак, прямо сейчас мы наблюдаем (или в ближайшем времени) будем наблюдать стремительное развитие IoT и, самое главное, внедрение на потребительском уровне. Цены падают, количество решений увеличивается, а возможности просто прекрасные.</p><p>Сейчас даже в Леруа Мерлен есть стенд "умный дом", где по сказочным ценам продаются какие-то отдельные штуки. В основном всё сводится к управлению привычными приборами непривычным способом:</p><ul><li>чайником через телефон</li><li>дверным замком через телефон</li><li>светом через телефон</li><li>уведомления о протечке/газе на телефон и перекрытие трубы с протечкой (от 19к рублей)</li></ul><p>И тому подобное, тысячи их. Разумеется, необходимо поставить отдельное приложение и возможности устройства ограничены теми, что разрешили разработчики приложения.</p><p>Но полуавтоматизация — не умный дом. Полностью умным домом пожалуй можно считать сценарий, когда дома автоматически поддерживается климат, поливаются растения, кормятся звери, включается/выключается свет. Всё это должно делаться совершенно само, без участия человека или же с минимальным. То, что есть сейчас, предусматривает его активное вмешательство и чаще всего — через телефон как пульт. Когда-нибудь это превратится в полную автоматизацию и сейчас технологии это вполне позволяют. Должно это выглядеть примерно так:</p><figure class="kg-card kg-embed-card"><iframe width="480" height="270" src="https://www.youtube.com/embed/aAj8zHOEfiI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>Возвращаясь к нашей теме — на загнивающем Западе по факту на рынке сейчас три основных системы:</p><ol><li>Apple HomeKit</li><li>Google Home</li><li>Alexa</li></ol><p>Фактически это пульты для управления некоторыми видами устройств (лампочки/датчики/выключатели) и некоторая автоматизация. У каждого есть свои недостатки и основной — поддержка только очень ограниченного числа устройств и весьма куцая автоматизация.</p><p>Сейчас и в дальнейшем я буду рассказывать только про HomeKit, других управляющих устройств у меня нет.</p><p>По замыслу Apple мы покупаем в Apple Store за мильён денег умную розетку, открываем приложение Home, добавляем там аксессуар, сканируя QR-код с упаковки и всё работает. Да, Apple-way, но стоит это <strong>очень</strong> дорого (мне так кажется):</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---18.54.06.png" width="325" height="473" alt="О технической и программной стороне умного дома"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---18.54.18.png" width="329" height="484" alt="О технической и программной стороне умного дома"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---18.54.30.png" width="326" height="494" alt="О технической и программной стороне умного дома"></div></div></div><figcaption>Нормально?</figcaption></figure><p>Я могу уже <em>сам сделать</em> любое из таких устройств, оно будет не столь красиво конечно, но более функционально и дешевле, навскидку: розетка ~600 руб, ~датчик 300, лампу не могу,  но за 5500 могу 3-5 метров цветной RGBW светодиодной ленты в алюминиевом корпусе с рассеивателем. К примеру, вот датчик температуры и влажности, который ничем не отличается от магазинных за 3-4 тыс. рублей, но мне обошёлся примерно в 350 руб и еще есть возможность его существенно расширить, прицепив управление освещением, датчик движения и ещё что-нибудь (3-4 устройства легко).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://ptath.ru/content/images/2019/03/IMG_4421.jpg" class="kg-image" alt="О технической и программной стороне умного дома"><figcaption>Красивое решение, да? Рабочие варианты все такие, не особо презентабельны</figcaption></figure><p>Как работают эти устройства? Например, пресловутая умная розетка за 7108 рублей втыкается в глупую розетку и после почти мгновенной загрузки заявляет о себе (либо Bluetooth либо Wi-Fi, конкретно эта модель хз). iOS устройство видит её и позволяет управлять (вкл/выкл), получать состояние и энергопотребление. </p><p>Помимо Wi-Fi и Bluetooth устройства могут быть подключены и другими способами, например существуют беспроводные протоколы ZigBee, Z-Wave и т.п. Так как у айфонов такой экзотики нет, для подключения всяких там умных лампочек используются хабы. Хаб соединяется с конечными устройствами по своему (часто закрытому) протоколу и по Wi-Fi/Bluetooth с iOS. Для пользователя в приложении Home в итоге все выглядит хорошо — добавляешь хаб, а через него уже все экзотические устройства.</p><p>Разумеется, каждый производитель хочет продать свой хаб:</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---20.57.31.png" width="1058" height="443" alt="О технической и программной стороне умного дома"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---21.02.04.png" width="626" height="503" alt="О технической и программной стороне умного дома"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---21.04.13.png" width="602" height="284" alt="О технической и программной стороне умного дома"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---21.07.09.png" width="930" height="433" alt="О технической и программной стороне умного дома"></div></div></div></figure><p></p><p>Наша цель — иметь один хаб для всего зоопарка и это уже вполне реализуемо.</p><p>Итак, предустановленное приложение Home (уже много лет на всех айфонах, эта ненужная удаляемая желтая иконочка с домиком) позволяет добавить несколько домов, в каждом из них несколько комнат (списком, без схемы) и разместить в них устройства.</p><figure class="kg-card kg-image-card"><img src="https://ptath.ru/content/images/2019/03/home-app-icon-ana.jpg" class="kg-image" alt="О технической и программной стороне умного дома"></figure><p>Кроме того, есть автоматизация, но она плохая. К примеру, можно сделать так, чтобы на закате зажигался свет, а на восходе гас, но нельзя сделать так, чтоб он зажигался за 3 минуты до и за 17 после, отчего-то Apple сделала эти интервалы лишь по 15 минут. Присутствие в доме для сценария "если кто-то дома, сделать то-то" определяется по геопозиции телефона, то есть гуляя во дворе ты фактически дома.</p><p>Самая жесть — температурные датчики не являются триггерами событий, например нельзя сделать чтоб при температуре в комнате ниже 19 градусов включался кондиционер. Для этого есть устройство "термостат", но HomeKit-девайсы с таким функционалом стоят весьма и весьма недешево.</p><p>Поэтому мы будем делать всё сами и работать оно будет хорошо. <a href="https://ptath.ru/2018/12/26/thermo-homekit-sonoff/">Собранный мною по осени термостат</a> прекрасно отработал всю зиму, держал в разное время температуру от 15 до 24 градусов и не допустил ни одного сбоя несмотря на отключения электричества.</p><p>Итак, железная часть, — какие устройства используем для начала и примерно сколько оно стоит (с запасом).</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th style="text-align:left">Девайс</th>
<th>Для чего</th>
<th style="text-align:right">Цена</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">Raspberry Pi</td>
<td>Отличный и проверенный временем мини-компьютер, который потребляем мало энергии, бесшумен и справляется с нашей задачей быть хабом — объединять зоопарк устройств и рассказывать о них HomeKit. Стоит сейчас покупать Raspberry Pi B3+ — оно с вайфаем. У меня также есть Raspberry Pi zero w, стоит примерно в два раза дешевле, мощность в 3 раза меньше, но работает так же хорошо. Я еще не нашел ситуации, когда её мощи бы не хватало.</td>
<td style="text-align:right">3500 руб.</td>
</tr>
<tr>
<td style="text-align:left">Проводочки</td>
<td>RPI идёт абсолютно голой, нужен блок питания 5v/1A, USB-хаб, mini-usb провода и еще масса всего.</td>
<td style="text-align:right">1500 руб</td>
</tr>
<tr>
<td style="text-align:left">Роутер</td>
<td>Да-да, использование роутера как части умного дома это нормально. На современные можно поставить массу всего и разгрузить малинку. У меня был ASUS N56 (продал на авито за 4500), но я променял его на Xiaomi 3G (купил в РФ за 2500), поставил прошивку тов. Padavan и все прекрасно.</td>
<td style="text-align:right">3500 руб.</td>
</tr>
<tr>
<td style="text-align:left">ESP8266</td>
<td>Устройства на одноименном чипе, неимоверно дешевые и легко программируемые. Многие &quot;взрослые&quot; и дорогие устройства построены именно на них, мы можем это сделать самостоятельно.</td>
<td style="text-align:right">250 руб.</td>
</tr>
<tr>
<td style="text-align:left">CC2531/CC2530 и прочие</td>
<td>Устройство, которое после перепрошивки может быть ZigBee координатором/рутером. Нужно если у нас будут устройства на этом протоколе.</td>
<td style="text-align:right">450 руб.</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Для <em>самого</em> начала достаточно одной малинки или даже ничего из вышеперечисленного, если есть <em>ненужный</em> компьютер с linux/mac os (на windows совсем изврат, правда).</p><p>Теперь о программной части. Apple не так давно открыла <a href="https://developer.apple.com/support/homekit-accessory-protocol/">HAP</a> (HomeKit Accessory Protocol Specification) и софт стал появляться с огромной скоростью. Нас интересует возможность добавлять в приложение Home (желтая иконочка с домиком) неподдерживаемые устройства.</p><p>Самое популярное решение сейчас — hap-nodejs и производные. Соответственно нужен сам <strong>nodejs</strong> (есть для многих платформ и архитектур, даже для Raspberry Pi и даже на свой рутер я умудрялся его поставить) и дальше всё ставится его пакетами через npm.</p><p>Человеческий способ использовать монументальный hap-nodejs это <a href="https://github.com/nfarina/homebridge">Homebridge</a>, там уже всё более-менее понятно и есть огромная масса плагинов, в том числе для вещей, которые не предназначены к интеграции в умный дом. К примеру, можно управлять сигнализацией Starline =)</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://ptath.ru/content/images/2019/03/--------------2019-03-26---21.12.35.png" class="kg-image" alt="О технической и программной стороне умного дома"></figure><p>Но Homebridge лишь "прокидывает" устройства в HomeKit и не даёт возможности создания автоматизаций (за редкими исключениями). Для этого надо что-то посерьезнее, например Node-RED, благо для него недавно был приведён в божий вид плагин (нода) <a href="https://flows.nodered.org/node/node-red-contrib-homekit-bridged">node-red-contrib-homekit-bridged</a>, делающая то же самое что и Homebridge.</p><p>Для связи между устройствами самым популярным (и небезопасным =) является протокол <a href="https://mosquitto.org/download/">mosquitto</a>. Это как мессенджер для различных устройств с удобной и понятной структурой команд, является фактически стандартом в сфере IoT. Сперва демон mosquitto работал у меня на raspberry pi, а потом я перенес его на роутер, всё хорошо, он нересурсоёмкий.</p><p>Забавно, что MQTT и Node-RED — детища IBM, давно не слышал об этой конторе.</p><p>Весь вышеуказанный софт можно установить на Raspberry Pi и оно будет вполне сносно работать. Сегодня и так много текста, продолжу попозже.</p>]]></content:encoded></item><item><title><![CDATA[Выкачиваем вебинары]]></title><description><![CDATA[<p>В последнее время часто приходится смотреть всякие вебинары и почему-то их организаторы в основной своей массе запрещают скачивать видео.</p><p>Более того, оно проигрывается только с сайта в каком-то кривом плеере, его невозможно перевести на телевизор (airplay/chromecast), да еще и с сайта пропадает через месяц. Встречаются случаи, когда видео недоступно</p>]]></description><link>https://ptath.ru/icped/</link><guid isPermaLink="false">5ced86569ee55a0d5b097866</guid><category><![CDATA[вебинар]]></category><category><![CDATA[код]]></category><category><![CDATA[видео]]></category><category><![CDATA[wget]]></category><category><![CDATA[cookie]]></category><category><![CDATA[icped.ru]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Fri, 04 Jan 2019 16:00:50 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1513258496099-48168024aec0?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1513258496099-48168024aec0?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Выкачиваем вебинары"><p>В последнее время часто приходится смотреть всякие вебинары и почему-то их организаторы в основной своей массе запрещают скачивать видео.</p><p>Более того, оно проигрывается только с сайта в каком-то кривом плеере, его невозможно перевести на телевизор (airplay/chromecast), да еще и с сайта пропадает через месяц. Встречаются случаи, когда видео недоступно через пару суток после начала просмотра.</p><p>В последний раз, когда за бешеные деньги был куплен очередной вебинар в общей сложности на 10 часов, мне это надоело и я своими кривыми ручонками всё-таки выкачал видео для дальнейшего вдумчивого просмотра.</p><p>В статье вырезаны все приватные данные и само видео я тоже распространять не стану, потому что всё-таки это ценный труд людей. Таким способом нельзя скачать видео, доступа к которому нет, этот метод лишь для скачивания имеющегося и оплаченного контента.</p><p>Итак, запустив режим разработчика в браузере мы видим, что плеер по очереди играет видео из плейлиста, при этом каждое видео размером ровно в 10 секунд.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://ptath.ru/content/images/2019/01/--------------2019-01-04---18.47.57.png" class="kg-image" alt="Выкачиваем вебинары"><figcaption>HLS такой HLS</figcaption></figure><p>Собственно это <a href="https://ru.wikipedia.org/wiki/HLS">HLS</a>:</p><!--kg-card-begin: markdown--><blockquote>
<p>HLS (HTTP Live Streaming) — коммуникационный протокол для потоковой передачи медиа на основе HTTP, разработанный компанией Apple как часть программного обеспечения QuickTime, Safari, OS X и iOS. В основе работы лежит принцип разбиения цельного потока на небольшие фрагменты, последовательно скачиваемые по HTTP. Поток непрерывен и теоретически может быть бесконечным. В начале сессии скачивается плей-лист в формате M3U, содержащий метаданные об имеющихся вложенных потоках.</p>
</blockquote>
<blockquote>
<p>HLS также предоставляет стандартный механизм шифрования с использованием AES и метод безопасной доставки ключей по HTTPS либо через авторизацию на устройстве, либо посредством HTTP cookie. Вместе это даёт возможность создавать простые системы DRM.</p>
</blockquote>
<!--kg-card-end: markdown--><p>Существуют решения для скачивания HLS потока, но ни одно у меня не заработало по причине необходимости авторизации — та самая простая DRM. Поэтому я просто скачал все эти маленьние файлы и склеил в один большой. Так как их сотни, надо было автоматизировать процесс.</p><!--kg-card-begin: markdown--><p>Ссылка на видеофайл имеет вид: <code>https://video.icped.ru/proxy/HIDDEN/hls/index00000.ts</code> и по мере проигрывания циферки на конце увеличиваются. Два часа видео соответствуют примерно 700 файлам, для ровного счёта пусть будет тысяча.</p>
<p>Создаём файл для wget со ссылками на наши файлы от 00000 до 01000 (как смог, — простите меня, гуру):</p>
<pre><code>MBP:icped ptath$ touch urls
MBP:icped ptath$ for n in $(seq -w $(%05d) 01000); do echo https://video.icped.ru/proxy/HIDDEN/hls/index0$n.ts &gt;&gt; urls; done
</code></pre>
<p>Быстро-быстро смотрим в браузере куки (они устареваею примерно минут за 10 или даже меньше и их приходится подставлять заново).</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://ptath.ru/content/images/2019/01/--------------2019-01-04---19.14.59.png" class="kg-image" alt="Выкачиваем вебинары"><figcaption>Cookies</figcaption></figure><p>После этого скармливаем получившегося франкенштейна wget, указав наш список файлов. Всё в одну строчку, тут ключи разнесены по строкам для удобства, User-Agent и прочее взяты из браузера для правдоподобности:</p><!--kg-card-begin: markdown--><pre><code>wget --header=&quot;Host: video.icped.ru&quot; 
--header=&quot;User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36&quot; 
--header=&quot;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8&quot;
--header=&quot;Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7&quot;
--header=&quot;Cookie: 
    browser_has_html5_support=true;
    browser_has_local_storage_support=true;
    tutorials_popup_was_shown=0;
    login_form_email=HIDDEN;
    symfony=HIDDEN;
    _lk=HIDDEN;
    lang=ru&quot;
--header=&quot;Connection: keep-alive&quot;
-i urls -c
</code></pre>
<!--kg-card-end: markdown--><p>Wget начнет неторопливо и последовательно выкачивать все файлы с 00000 по 01000, после того как они закончатся довольно быстро завершится, ругаясь на ошибку 404. Если ошибка 503, то скорее всего слетели/истекли cookies, их надо поправить и запустить загрузку заново. Уже скачанные файлы останутся на месте, ничего не сломается.</p><p>Скачанные файлы легко объединить в один через ffmpeg. Создаем текстовый файл со списком скачанных видеофайлов для объединения:</p><!--kg-card-begin: markdown--><pre><code>MBP:icped ptath$ for n in $(seq -w $(%05d) 01000); do echo file index0$n.ts &gt;&gt; videolist; done
</code></pre>
<p>Объединяем:</p>
<pre><code>MBP:icped ptath$ ffmpeg -f concat -i videolist -c copy fullvideo.ts
</code></pre>
<p>Процесс идёт на моём стареньком ноуте со скоростью около 200х, пару часов обрабатываются менее минуты.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Tinkoff Mobile vs Мегафон в Саратове]]></title><description><![CDATA[<p>Буквально меньше недели назад в Саратов пришел Тинькофф Мобайл (далее — TM) и уже вчера мне привезли пару SIM-карт.</p><p>Начнем с хорошего. Положительные моменты заключаются в высоком качестве сервиса, скорости и удобстве. Карту привезли домой в красивой коробочке, еще до подключения бесплатно выбрал красивый номер, операторы в чате быстро помогли настроить</p>]]></description><link>https://ptath.ru/megafon-vs-tinkoff-mobile/</link><guid isPermaLink="false">5ced86569ee55a0d5b097865</guid><category><![CDATA[мегафон]]></category><category><![CDATA[тинькофф]]></category><category><![CDATA[мобайл]]></category><category><![CDATA[саратов]]></category><category><![CDATA[сотовый]]></category><category><![CDATA[lte]]></category><category><![CDATA[SIM]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Wed, 02 Jan 2019 13:55:00 GMT</pubDate><media:content url="https://ptath.ru/content/images/2019/01/DRV3syPX4AA8vMT.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://ptath.ru/content/images/2019/01/DRV3syPX4AA8vMT.jpg" alt="Tinkoff Mobile vs Мегафон в Саратове"><p>Буквально меньше недели назад в Саратов пришел Тинькофф Мобайл (далее — TM) и уже вчера мне привезли пару SIM-карт.</p><p>Начнем с хорошего. Положительные моменты заключаются в высоком качестве сервиса, скорости и удобстве. Карту привезли домой в красивой коробочке, еще до подключения бесплатно выбрал красивый номер, операторы в чате быстро помогли настроить iMessage, рассказали об условиях и ограничениях.</p><p>В приложении сразу всё ясно и понятно, там минуты, там СМС, там гигабайты, а вон там роуминг. В любом роуминге все приложения тинькова бесплатно, это просто отлично когда стоишь на ресепшене отеля с картой и жестами объясняешь какому-нибудь пакистанцу что сейчас на карту денег скину и надо её еще раз прокатить. Или когда карта дает отказ и банк тебе начинает звонить/писать в роуминге по 350 рублей/минута.</p><p>Национального роуминга нет, а по закону его не будет у всех операторов с лета 2019 года. Еще осенью большая тройка привела к этому основные свои тарифы.</p><p>Любое (до 15 штук) количество сим-карт будет видно в приложении банка и приложении ТМ, каждой можно управлять, удобно. Никаких платных гудков, свистков, баннеров на сайтах и прочего платного контента, которым так любят промышлять Мегафон, Билайн и МТС — это самый основной и главный плюс; подобного развода в принципе нет, ни копейки более тарифа не списывается (якобы, но примеров обратного не нашёл). Киллер фича — виртуальный номер (100 руб/мес), с которого можно звонить и писать СМС, подключается, заменяется и отключается за секунду в приложении. </p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/01/20181021-0p7a5519__itah40t.jpg" width="1425" height="1086" alt="Tinkoff Mobile vs Мегафон в Саратове"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2019/01/DaZ_j1xW0AAS0Fk.jpg" width="1017" height="579" alt="Tinkoff Mobile vs Мегафон в Саратове"></div></div></div></figure><p>Я хотел сперва попробовать ТМ в бою и лишь потом переводить туда с Мегафона свои номера, многим из которых за 10 лет. Почему Мегафон раздражает — отдельная история, как-нибудь попозже.</p><p>TM использует сети Tele2 и в целом по Саратову оно работает. Но были места (подвалы, ТРЦ и прочие) где TM тупо терял сеть и для меня это совершенно неприемлемо. Покрытие и мощность сигнала в ареале моего обитания проигрывает Мегафону, при том что к скорости Интернета и связи вопросов в принципе нет никаких. Временами на LTE от Tinkoff Mobile появлялся пинг в 200-300, но в основном держался меньше сотни.</p><p>Использовать TM в существующем виде я не могу. С этими грустными мыслями решил посчитать еще и экономическую сторону вопроса.</p><!--kg-card-begin: markdown--><p>Опыт показывает, что мне нужно примерно 400-600 минут и 10-20 гигабайт в месяц на телефоне. В ТМ это будет стоить 259 рублей за минуты и 399 рублей за интернет, итого <mark>почти 660 рублей</mark>. При этом 15 гб трафика обойдется дешевле в 2 (два раза) — 199 рублей. Ну я не маркетолог, значит кому-то так надо.</p>
<p>Можно взять меньше траффика, заменив пакетом на музыку (включая iTunes и Яндекс.Музыка — 59 руб.), соцсети и мессенджеры, но статистика телефона говорит что меня больше всего уходит на Safari, iCloud, Telegram и VPN (ну и на музыку конечно), которых нет ни в одном из пакетов.</p>
<p>Есть минусы и по звонкам — пакет минут будет тратиться на всё, кроме звонков на телефоны абонентов TM. Таких пока очень мало, а на Мегафоне у меня минимум треть минут бесплатны именно по причине разговоров внутри сети.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Детям вполне хватает 100-200 минут и те же 20 гигабайт, что в TM обойдется почти в <mark>500 рублей</mark>.</p>
<!--kg-card-end: markdown--><p>Актуальные тарифы на Мегафоне (<a href="http://saratov.megafon.ru/download/~volga/b2b/cor_bez/rf/CB_sam_sar.pdf">корпоративный безлимит</a> с поездками по РФ) для меня сейчас выглядят так:</p><figure class="kg-card kg-image-card"><img src="https://ptath.ru/content/images/2019/01/--------------2019-01-01---21.47.37.png" class="kg-image" alt="Tinkoff Mobile vs Мегафон в Саратове"></figure><!--kg-card-begin: markdown--><p>Мой тариф на 1000 минут и 20 гигабайт, без какого-либо роуминга по России обойдется в <mark>515 рублей</mark>, детские — в <mark>315 рублей</mark>.</p>
<p>Возможно, что поигравшись с пакетами на TM можно получить и более дешевую связь, но пока в Саратове её качество совершенно неприемлемо. Для путешествий симки оставим, зарубежный роуминг на треть выгоднее предложений Мегафона.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-width-wide"><img src="https://ptath.ru/content/images/2019/01/camphoto_1804928587-3.jpg" class="kg-image" alt="Tinkoff Mobile vs Мегафон в Саратове"></figure>]]></content:encoded></item><item><title><![CDATA[Термостат для газового котла с полной поддержкой HomeKit]]></title><description><![CDATA[<p>Сегодня я расскажу вам о HomeKit устройствах для нищебродов. HomeKit это старая, но не особо распространенная концепция умного дома от Apple. Выглядит оно отлично, стандартное начиная с iOS 10 приложение,  позволяющее управлять всеми лампочками, чайниками и прочим.</p><p>Однако не особо распространен Apple Home именно из-за <a href="https://www.apple.com/ru/shop/accessories/all-accessories/homekit">цен на устройства</a>, например лампочка</p>]]></description><link>https://ptath.ru/thermo-homekit-sonoff/</link><guid isPermaLink="false">5ced86569ee55a0d5b097864</guid><category><![CDATA[homekit]]></category><category><![CDATA[apple]]></category><category><![CDATA[sonoff]]></category><category><![CDATA[homebridge]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Wed, 26 Dec 2018 19:50:32 GMT</pubDate><media:content url="https://ptath.ru/content/images/2018/12/15083984977.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://ptath.ru/content/images/2018/12/15083984977.jpeg" alt="Термостат для газового котла с полной поддержкой HomeKit"><p>Сегодня я расскажу вам о HomeKit устройствах для нищебродов. HomeKit это старая, но не особо распространенная концепция умного дома от Apple. Выглядит оно отлично, стандартное начиная с iOS 10 приложение,  позволяющее управлять всеми лампочками, чайниками и прочим.</p><p>Однако не особо распространен Apple Home именно из-за <a href="https://www.apple.com/ru/shop/accessories/all-accessories/homekit">цен на устройства</a>, например лампочка стоит от 3000₽, розетка — 6000₽, термостат — 12000₽ и так далее.</p><p>Энтузиасты давно придумали и внедрили <a href="https://homebridge.io">homebridge</a> — "поддержка HomeKit для нетерпеливых", сервер на nodejs, крутящийся в локальной сети и позволяющий добавлять в умный дом устройства, которые не поддерживаются официально. Минусы у этого решения есть — необходимость постоянно держать в сети запущенный сервер (для этого рационально использовать raspberry pi, моя уже в пути) и все равно нужен хаб для управления извне локальной сети — Apple TV 4, HomePod или воткнутый в розетку iPad.</p><p>Однако прогресс не стоит на месте и существуют решения для некоторых устройств, не требующие ни того, ни другого.</p><p>Взять к примеру газовый котёл для отопления дома. Обычный котел имеет регулировку температуры, но это температура носителя — воды. И котлу глубоко параллельно, что в доме температура приближается к 30 градусам цельсия — он будет жечь газ и греть воду в трубах до 40 градусов минимум (зависит от модели котла). У меня Electrolux Basic 24:</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://ptath.ru/content/images/2018/12/925db5f1110ce7a664f19f9a82343e46.jpg" class="kg-image" alt="Термостат для газового котла с полной поддержкой HomeKit"><figcaption>Electrolux Basic 24</figcaption></figure><p>У него масса настроек, он знает день недели и время, может резулировать температуру (<em>носителя</em>) в зависимости от этого. Умеет работать с датчиком (проводной, от 7000 рублей, под заказ), но через жопу — он ставится <em>на улице</em> и смотрит <em>погоду</em>, потом в зависимости от <em>погодной зоны</em> регулирует нагрев. Это мало коррелирует с температурой в доме и поэтому есть возможность подключить комнатный термостат.</p><p>Этот прибор смотрит на температуру в доме и в зависимости от нее включает или выключает горелку — намного более рационально чем смотреть погоду. Но они тоже небюджетные и либо тупые проводные (от 4000 рублей), либо проприетарные и стоят около 9000.</p><figure class="kg-card kg-image-card"><img src="https://ptath.ru/content/images/2018/12/IMG_3687.jpg" class="kg-image" alt="Термостат для газового котла с полной поддержкой HomeKit"></figure><p>Прямо сейчас я расскажу как сделал из <s>говна и палок</s> подручных средств и с интеграцией в HomeKit, фактически это термостат для любого современного газового котла с полной поддержкой HomeKit за менее чем 1000 рублей.</p><p>Берем у разорившихся майнеров обычную релюшку Sonoff, мне в Саратове такая обошлась в 500 рублей (в Китае от 290):</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://ptath.ru/content/images/2018/12/S1630-1-a56e-xNAL.jpg" class="kg-image" alt="Термостат для газового котла с полной поддержкой HomeKit"><figcaption>Sonoff Basic</figcaption></figure><p>По задумке производителя это устройство получает 220в и по команде пользователя, получаемой через Wi-Fi и проприетарное приложение, передает их дальше, выдерживает 10А. Железка качественная и реально держит большие токи.</p><p>Просим друга с прямыми руками припаять (1 пиво или бесплатно) гребенку (20 рублей) на пять дырочек на плате (тут уже с проводами, сорри):</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://ptath.ru/content/images/2018/12/5holes.jpg" class="kg-image" alt="Термостат для газового котла с полной поддержкой HomeKit"></figure><p>Немаловажный момент — пока друг с прямыми руками рядом, нам надо чтоб реле работало как простой <a href="https://ru.wikipedia.org/wiki/Контактор">контактор</a>, по команде замыкающий цепь (aka "сухие контакты"). Для этого надо перепилить (<em>с двух сторон</em>, это уточнение написано кровью) одну из силовых дорожек, а потом тестером проверить результат.</p><p>Покупаем USB-UART штуковину (190 рублей в столице Поволжья, 30 в Китае) и подключаем, поменяв местами RX и TX при выключенном питании 220В, это очеь важно =). К сожаленью картинок не сохранилось, но тут поможет вот это: <a href="https://yandex.ru/images/search?text=распиновка%20sonoff%20basic">распиновка Sonoff basic</a>.</p><figure class="kg-card kg-image-card"><img src="https://ptath.ru/content/images/2018/12/NSE-1053-1_3.jpg" class="kg-image" alt="Термостат для газового котла с полной поддержкой HomeKit"></figure><p>Чтобы эта штука работала под Mac, нужны драйвера, которые лежат <a href="https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers">здесь</a>. Проверяем что устройство видно (второе в списке), вытыкаем его из USB порта:</p><!--kg-card-begin: markdown--><pre><code>MBP:RavenCore ptath$ ls -lah /dev/cu.*
crw-rw-rw-  1 root  wheel   21,   1  7 дек 01:52 /dev/cu.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   21,  13 16 дек 23:00 /dev/cu.SLAB_USBtoUART
</code></pre>
<!--kg-card-end: markdown--><p>Идём на Github и внимательно читаем про <a href="https://github.com/RavenSystem/esp-homekit-devices/wiki/RavenCore">RavenCore</a>, весьма технологичную прошивку, которая в дальнейшем будет сама себя обновлять без необходимости подключения проводов. Скачиваем бинарники.</p><p>Убеждаемся что не воткнули в розетку Sonoff, иначе все взорвется. Подключаем припаянные контакты к переходнику, зажимаем на Sonoff единственную кнопку и только тогда втыкаем в USB компьютера (режим прошивки). После этого кнопку можно отпустить.</p><p>Нам нужен python3 и esptool, все ставится через brew или ручками.</p><!--kg-card-begin: markdown--><pre><code>MBP:RavenCore ptath$ esptool.py -p /dev/cu.SLAB_USBtoUART --baud 115200 write_flash -fs 1MB -fm dout -ff 40m \ 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 otaboot.bin
</code></pre>
<!--kg-card-end: markdown--><p>Прошивка занимает пару минут, после этого подключаемся к Wi-Fi сети OTA-чтототам и она сразу откроет браузер, в котором надо указать имя и пароль домашней, постоянной сети и ссылки на бинарники прошивки в интернете (не обязательно, но иначе придется каждый раз разбирать и прошивать руками как сейчас):</p><!--kg-card-begin: markdown--><pre><code>RavenSystem/ravencore
main.bin
</code></pre>
<!--kg-card-end: markdown--><p>После этого жмякаем зеленую кнопку Join и ждем около минуты пока железка перезагрузится и подключится к домашней сети. В приложении Home добавляем новый аксессуар, выбираем "Нет кода или не можете сканировать" и пишем пин 02182017. У меня ожидание заняло почти две минуты, стоит набраться терпения.</p><p>Для того чтобы оно работало как термостат, надо подключить датчик температуры. Прошивка поддерживает стандартные DHT-11 (150 рублей в Саратове) и DHT-22 (300 рублей), а также более современные и дорогие, которые я просто не нашёл в наличии. На припаянные ранее пины подключаем датчик — питание, земля и дата, один свободный. У меня от датчика до Sonoff 10 (десять) метров обычного телефонного провода:</p><figure class="kg-card kg-image-card"><img src="https://ptath.ru/content/images/2018/12/IMG_3503.jpg" class="kg-image" alt="Термостат для газового котла с полной поддержкой HomeKit"></figure><p>Проверяем работу в Apple Home и лезем в сам котёл (отключив его от 220 конечно). В инструкции к котлу находим пины, отвечающие за комнатный термостат, — на них должна быть перемычка или длинные провода.</p><p>Пины термостата на котле с завода нормально замкнуты, то есть наша железка для нагрева тоже должна их замыкать, а для остановки — размыкать. Перепаянный Sonoff нормально разомкнут и только по сигналу с датчика о целевой температуре (её понижении до порога) замыкает контакты.</p><p>Питание Sonoff можно завести с самого котла чтобы не висели сопли. У меня в итоге из котла просто выходит 10 метров провода с датчиком, потом повешу где-то на стене на уровне пояса.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2018/12/RenderedImage.jpg" width="1575" height="2100" alt="Термостат для газового котла с полной поддержкой HomeKit"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2018/12/RenderedImage-2.jpg" width="1575" height="2100" alt="Термостат для газового котла с полной поддержкой HomeKit"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2018/12/IMG_3663.jpg" width="4032" height="3024" alt="Термостат для газового котла с полной поддержкой HomeKit"></div><div class="kg-gallery-image"><img src="https://ptath.ru/content/images/2018/12/IMG_3665.jpg" width="3873" height="2013" alt="Термостат для газового котла с полной поддержкой HomeKit"></div></div></div><figcaption>Термостат для газового котла с поддержкой Apple HomeKit</figcaption></figure><figure class="kg-card kg-embed-card"><iframe src="https://player.vimeo.com/video/308321073?app_id=122963" width="360" height="640" frameborder="0" title="Термостат HomeKit" allow="autoplay; fullscreen" allowfullscreen></iframe></figure>]]></content:encoded></item><item><title><![CDATA[Fusion Tables RIP]]></title><description><![CDATA[<p>Ну вот как пользоваться продуктами корпорации добра? Постоянно происходит следующее — пробуешь, входишь во вкус и они это выключают.</p><p>Сегодня очередь Fusion Tables, через год оно погибнет безвозвратно. </p><blockquote><a href="https://www.google.com/appserve/mkt/p/AEM7UVRWhvMatzzntXNFVC3tRo35Z1-LFZ0q1NTp0ejUQ9XCVKHOZAizhx55SH7x5YISEI8OrbG23SB8rOd1KfywZVVh0e_kE9rXt2igx2qLKWdVErZ622YMcVo">Google Fusion Tables</a> was launched almost nine years ago as a research project in Google Labs, later evolving into an experimental product. For</blockquote>]]></description><link>https://ptath.ru/fusion-tables-down-2/</link><guid isPermaLink="false">5ced86569ee55a0d5b097863</guid><category><![CDATA[google]]></category><category><![CDATA[reader]]></category><category><![CDATA[корпорация]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Tue, 11 Dec 2018 18:30:51 GMT</pubDate><media:content url="https://ptath.ru/content/images/2018/12/maxresdefault.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://ptath.ru/content/images/2018/12/maxresdefault.jpg" alt="Fusion Tables RIP"><p>Ну вот как пользоваться продуктами корпорации добра? Постоянно происходит следующее — пробуешь, входишь во вкус и они это выключают.</p><p>Сегодня очередь Fusion Tables, через год оно погибнет безвозвратно. </p><blockquote><a href="https://www.google.com/appserve/mkt/p/AEM7UVRWhvMatzzntXNFVC3tRo35Z1-LFZ0q1NTp0ejUQ9XCVKHOZAizhx55SH7x5YISEI8OrbG23SB8rOd1KfywZVVh0e_kE9rXt2igx2qLKWdVErZ622YMcVo">Google Fusion Tables</a> was launched almost nine years ago as a research project in Google Labs, later evolving into an experimental product. For a long time, it was one of the few free tools for easily visualizing large datasets, especially on a map. Since then, Google has developed several alternatives, providing deeper experiences in more specialized domains.</blockquote><blockquote>In order to continue focusing our efforts in these areas, we will be retiring Fusion Tables. We plan to turn down Fusion Tables and the <a href="https://www.google.com/appserve/mkt/p/AEM7UVQbVNeSdDYXXLsBZ9hfh_f---PnSHRy2nNGldSnEI9-1h57k_gqm6aB0Y2TaOWoxExkRsu7qcOMlSqdf58zF5nwmD6KYrY4nMJ4x-Yx">Fusion Tables API</a> on December 3, 2019. Embedded Fusion Tables visualizations — maps, charts, tables and cards — will also stop working that day. Maps using the <a href="https://www.google.com/appserve/mkt/p/AEM7UVQ8cC77tAZvqdFpZrbpArWf5tSb5P4tfLoPgBjOwyJ-6FghYqO-5aKPDDgRLQHsRSoO3mWJYivwmzkmkAPIZneKoiUcBByPgCVbSdZfYyKNY4_AE4n1uyJ0WgQx3uoBsaiP7lkAYWWnv67nEglSCw">Fusion Tables Layer</a> in the Maps JavaScript API v3.37 will start to see errors in August 2019.</blockquote><p>С другой стороны, у меня до сих пор есть бесплатный домен (ныне Gsuit, от $5 в месяц за человека) в Google Apps. Он был заведен тогда, когда у гугля не было нормальных юристов — его не могут удалить, но и любой мой чих там приведет к переводу на платный тариф =)</p>]]></content:encoded></item><item><title><![CDATA[О жадности Microsoft]]></title><description><![CDATA[<p>Около месяца назад Microsoft обрадовал расширением семейной подписки Office 365 с пяти до шести аккаунтов (на 20 процентов).</p><p>А сегодня они подняли цену за подписку на 30 процентов, с 339 до 439 рублей.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://ptath.ru/content/images/2018/10/--------------2018-10-03---22.13.40-1.png" class="kg-image"><figcaption>greeeeedy</figcaption></figure><p>Доллар тем временем вырос с 55 до 65, на 18 процентов. Таким образом можно сделать вывод</p>]]></description><link>https://ptath.ru/o-zhadnosti-microsoft/</link><guid isPermaLink="false">5ced86569ee55a0d5b097862</guid><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Wed, 03 Oct 2018 18:21:56 GMT</pubDate><content:encoded><![CDATA[<p>Около месяца назад Microsoft обрадовал расширением семейной подписки Office 365 с пяти до шести аккаунтов (на 20 процентов).</p><p>А сегодня они подняли цену за подписку на 30 процентов, с 339 до 439 рублей.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://ptath.ru/content/images/2018/10/--------------2018-10-03---22.13.40-1.png" class="kg-image"><figcaption>greeeeedy</figcaption></figure><p>Доллар тем временем вырос с 55 до 65, на 18 процентов. Таким образом можно сделать вывод о том, что Microsoft жадничает.</p><blockquote>Microsoft is not about greed. It's about innovation and fairness. — Bill Gates, 2007</blockquote>]]></content:encoded></item><item><title><![CDATA[Письмо европейцам Дмитрия Глуховского]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Д. Глуховский (тот, что &quot;Метро 203х&quot; написал<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>) дал <a href="https://www.zeit.de/politik/ausland/2018-06/russland-beziehung-westen-dmitry-glukhovsky">интервью на немецком</a>, перевод <a href="https://snob.ru/profile/25578/blog/138313">есть тут</a>. Писатель, высокий слог, слова с большой буквы и всё такое.</p>
<p>Товарищ капитан сделал очередное изложение на тему о скифах и азиатах, это похоже на модный тренд сейчас. За сутки более 700 комментариев (на</p>]]></description><link>https://ptath.ru/pismo-ievropieitsam-dmitriia-glukhovskogho/</link><guid isPermaLink="false">5ced86569ee55a0d5b097861</guid><category><![CDATA[политика]]></category><category><![CDATA[глуховский]]></category><category><![CDATA[метро]]></category><category><![CDATA[рассуждения]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Wed, 06 Jun 2018 19:45:05 GMT</pubDate><media:content url="https://ptath.ru/content/images/2018/06/49d67d9c8e57590.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://ptath.ru/content/images/2018/06/49d67d9c8e57590.jpg" alt="Письмо европейцам Дмитрия Глуховского"><p>Д. Глуховский (тот, что &quot;Метро 203х&quot; написал<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>) дал <a href="https://www.zeit.de/politik/ausland/2018-06/russland-beziehung-westen-dmitry-glukhovsky">интервью на немецком</a>, перевод <a href="https://snob.ru/profile/25578/blog/138313">есть тут</a>. Писатель, высокий слог, слова с большой буквы и всё такое.</p>
<p>Товарищ капитан сделал очередное изложение на тему о скифах и азиатах, это похоже на модный тренд сейчас. За сутки более 700 комментариев (на немецком) и ими можно зачитаться. Не знаю у нас новостного ресурса, где была бы столь вежливая и аргументировання полемика.</p>
<p>Избранные моменты самой статьи:</p>
<blockquote>
<p>Мы хотели быть вами, и наконец нам это позволили. Жители городов, опьяненные потребительской вседозволенностью, преклонили колена перед западным Золотым тельцом. Мы обращались в вашу веру, просто потребляя ваше, выучивая названия ваших брендов, дорываясь до ваших писателей, поглощая ваши телесериалы.</p>
</blockquote>
<p>Признаются ли в этом те, кому за 40-50? Поймут ли это родившиеся в России? Лично я прекрасно помню эту одержимость окружить себя вещами, сделанными не на территории СССР: техникой, одеждой, мебелью — всем чем угодно; при этом качество иногда было вполне сопоставимо с отечественными аналогами, про цену и не говорю.</p>
<blockquote>
<p>Россия — страна догоняющего развития, и почти все ее модернизационные скачки были связаны именно с новыми волнами заимствований на Западе. Хочешь ускоряться — сначала признай себя отсталым. Отказывайся от своих ценностей, признавай их архаичными, неуклюжими, бессмысленными. Хочешь быть европейцем — признайся себе в том, что ты — человек второго сорта, который мечтает стать человеком сорта первого.</p>
</blockquote>
<p>Строго говоря Россия это весьма молодое государство и за эти три десятка лет нет ни одного модернизационного скачка. В позднем СССР срезали по микронам слои с процессоров, фоткали и печатали по ним свои — но это был секрет и никто не признавался. Российская Империя, да и Русское Царство были вполне себе современными государствами.</p>
<blockquote>
<p>И наша имперская ностальгия — нормальная человеческая ностальгия по утраченному мировому величию, от которой мучаются до сих пор Великобритания, Франция и даже Венгрия, — наложилась на извечный наш комплекс неполноценности, на ощущение себя людьми второго сорта перед европейцами, комплекс, от которого только имперская гордость нас и излечивала. Да, мы жили в говне, но наши танки стояли от Владивостока до Дрездена, Варшавы и Праги: мы были величайшей (если судить по территории) из сохранившихся империй.</p>
</blockquote>
<p>Непохоже что вышеуказанные страны мучаются, выглядит как будто они этим наслаждаются. Все они до сих пор сохранили своё влияние в бывших протекторатах, а Королеву так вообще на половине шарика вспоминают на официальных мероприятиях.</p>
<p>Век империй закончился, как только кончилась свободная (т.е. с населением, чьи технологии не позволяли производить огнестрельное оружие) территория на планете. Несправедливо говорить что наши танки стояли так широко, силы союзников в то время занимали не меньшую территорию. Так же маловероятно, что кто-то в 1945 и позднее испытывал имперскую гордость — десятки миллионов погибших, населенные пункты без мужчин, калеки, разрушенные города, а позже ещё и разбор полётов среди выживших. Если бы кто-то тогда увидел популярное нынче &quot;можем повторить&quot;, то вряд ли согласился бы с этим.</p>
<blockquote>
<p>В открытом мире, где у граждан есть возможность сравнивать все со всем, где им всегда приходится спрашивать себя, почему они живут хуже соседа, власти приходится изыскивать этому свои объяснения и свои оправдания. Мы хуже живем, зато у нас свой особый путь, говорит нам телевизор. Мы беднее, зато мы гордые. Это буржуи нас наказывают за то, что мы Крым взяли. Это они нам с колен подняться не дают. Да, мы в говне по пояс, зато вон какие танки по Красной площади ездят.</p>
</blockquote>
<p>Это конец мысли автора, тут никаких выводов. Красотища.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Книгу осилил своевременно. Нельзя сказать что это лучшая фантастика, но в те годы юношеского максимализма подобное заходило отлично. <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Взрослые и дети — игровой проект Сбербанка (неработающий)]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>В поисках нормального решения карты для детей нашёл проект Сбербанка &quot;Взрослые и дети&quot;.</p>
<p><img src="https://ptath.ru/content/images/2018/06/promo-banner-adult-child-1.jpg" alt="promo-banner-adult-child-1"></p>
<ol>
<li>Зарегистрируйтесь и примите Лицензионный договор, пригласите ребенка и заведите ему кошелек на Яндексе (на мобильный номер ребенка).</li>
<li>Придумайте и отправьте ребенку задания, которые нужно выполнить. Или принимайте задания, придуманные ребенком</li>
<li>За выполненные задания перечисляйте деньги</li></ol>]]></description><link>https://ptath.ru/vzroslyie-i-dieti-ighrovoi-proiekt-sbierbanka-nierabotaiushchii/</link><guid isPermaLink="false">5ced86569ee55a0d5b097860</guid><category><![CDATA[деньги]]></category><category><![CDATA[яндекс]]></category><category><![CDATA[пластик]]></category><category><![CDATA[карта]]></category><category><![CDATA[дети]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Fri, 01 Jun 2018 15:36:01 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>В поисках нормального решения карты для детей нашёл проект Сбербанка &quot;Взрослые и дети&quot;.</p>
<p><img src="https://ptath.ru/content/images/2018/06/promo-banner-adult-child-1.jpg" alt="promo-banner-adult-child-1"></p>
<ol>
<li>Зарегистрируйтесь и примите Лицензионный договор, пригласите ребенка и заведите ему кошелек на Яндексе (на мобильный номер ребенка).</li>
<li>Придумайте и отправьте ребенку задания, которые нужно выполнить. Или принимайте задания, придуманные ребенком</li>
<li>За выполненные задания перечисляйте деньги с вашей банковской карты на кошелек на Яндексе или награждайте ребенка специальными медалями приложения!</li>
</ol>
<p>Идея вроде норм, но приложения скачать нельзя, поддержка о таких проектах не знает. Почему <a href="https://www.sberbank.ru/ru/person/sberbank-youth/0_plus/adults_and_children">страница индексируется</a> — непонятно.</p>
<p>&quot;Завести кошелёк на Яндексе&quot; ребёнку официально нельзя, только совершеннолетним. Зато вполне можно заказать карту с любым именем на ней, в том числе ребёнкиным. В поддержке яндекса вообще сказали что можно писать на карте что угодно вместо имени и фамилии, похоже что правда, мне таких две карты без проблем пришло.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[О доменах, nic.ru и их ценах]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>В стародание времена nic.ru был единственным реальным способом зарегистрировать домен. Поэтому многие люди за <s>30</s> <s>40</s> 45 продолжают автоматически продолжать пользоваться этим сервисом и даже заводят отдельных аккаунты для своих юрлиц. Страшная ошибка =)</p>
<p>При этом его передача и прочие операции требовали личного присутствия в офисе в DC и я</p>]]></description><link>https://ptath.ru/o-domienakh-nic-ru-i-ikh-tsienakh/</link><guid isPermaLink="false">5ced86569ee55a0d5b09785f</guid><category><![CDATA[nic.ru]]></category><category><![CDATA[домен]]></category><category><![CDATA[.ru]]></category><category><![CDATA[.рф]]></category><category><![CDATA[деньги]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Wed, 30 May 2018 20:45:24 GMT</pubDate><media:content url="https://ptath.ru/content/images/2018/05/logo-ru-center.gif" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://ptath.ru/content/images/2018/05/logo-ru-center.gif" alt="О доменах, nic.ru и их ценах"><p>В стародание времена nic.ru был единственным реальным способом зарегистрировать домен. Поэтому многие люди за <s>30</s> <s>40</s> 45 продолжают автоматически продолжать пользоваться этим сервисом и даже заводят отдельных аккаунты для своих юрлиц. Страшная ошибка =)</p>
<p>При этом его передача и прочие операции требовали личного присутствия в офисе в DC и я даже разок был там с этой целью. Сейчас всё проще, регистраторов как грязи, домены в зоне <code>.ru</code> люди регистрировали тысячами и сейчас вроде уже даже свободных четырехсимвольных нет.</p>
<p>Однако мне совершенно непонятно отчего nic.ru сейчас хочет за <em>продление</em> обычнейшего домена в зоне <code>.ru</code> (или <code>.рф</code>) целых <strong>890</strong> рублей. Первоначально их регистрировали по 199 рублей</p>
<p><img src="https://ptath.ru/content/images/2018/05/--------------2018-05-31---0.27.14.png" alt="О доменах, nic.ru и их ценах"></p>
<p>И ничего не сделать, приходится платить — лишь по истечении месячного периода paid-till можно его зерегистрировать на другое лицо. Передача в управление партнеру с нормальными ценами тоже занимает время, а домен-то разделегировался уже и нужен прям щас, почта стоит, сайт лежит.</p>
<p>Один домен конечно копейки, но когда их 20-150 и все кончаются в один день?</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[HiveOS info bot]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Родил альфа-версию бота для Telegram, который показыает информацию о майнерах на <a href="http://hiveos.farm">HiveOS</a>. Удивительно, но Python тут не при чем, всё отлично крутится на <em>бесплатных</em> сервисах Корпорации Добра (<a href="https://script.google.com/intro">Google Script</a>, <a href="https://firebase.google.com">Firebase</a>).</p>
<p><img src="https://ptath.ru/content/images/2018/05/--------------2018-05-17---0.02.50.png" alt="--------------2018-05-17---0.02.50"></p>
<p>HiveOS делал однозначно параноик. Публичного API как такового нет, любой запрос <a href="http://forum.hiveos.farm/discussion/192/hive-api/p1">должен быть подписан</a> приватным ключом. При этом через API</p>]]></description><link>https://ptath.ru/hiveos-info-bot/</link><guid isPermaLink="false">5ced86569ee55a0d5b09785e</guid><category><![CDATA[bot]]></category><category><![CDATA[telegram]]></category><category><![CDATA[программирование]]></category><category><![CDATA[hiveos]]></category><dc:creator><![CDATA[ptath]]></dc:creator><pubDate>Thu, 17 May 2018 07:25:00 GMT</pubDate><media:content url="https://ptath.ru/content/images/2018/05/--------------2018-05-17---23.23.05.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://ptath.ru/content/images/2018/05/--------------2018-05-17---23.23.05.png" alt="HiveOS info bot"><p>Родил альфа-версию бота для Telegram, который показыает информацию о майнерах на <a href="http://hiveos.farm">HiveOS</a>. Удивительно, но Python тут не при чем, всё отлично крутится на <em>бесплатных</em> сервисах Корпорации Добра (<a href="https://script.google.com/intro">Google Script</a>, <a href="https://firebase.google.com">Firebase</a>).</p>
<p><img src="https://ptath.ru/content/images/2018/05/--------------2018-05-17---0.02.50.png" alt="HiveOS info bot"></p>
<p>HiveOS делал однозначно параноик. Публичного API как такового нет, любой запрос <a href="http://forum.hiveos.farm/discussion/192/hive-api/p1">должен быть подписан</a> приватным ключом. При этом через API в принципе ничего кроме статистики получить невозможно, ну если только поменять кошельки на другие, уже имеющиеся у пользователя.</p>
<blockquote>
<p>Every API call has a SHA-256 HMAC signature generated with your secret key. Our server generates it's own HMAC signature and compares it with the API caller's. If they don't match the API call is discarded.</p>
</blockquote>
<p>Нужны тестеры, чтобы получить нормальные ответы API от асиков и прочих ненормальных майнеров. Созданная на <a href="http://forum.hiveos.farm/discussion/864/telegram-bot-alpha-testers-needed#latest">родном форуме тема</a> ажиотажа не вызвала =) Зарегистрировалось и активно используют сервис всего ~30 человек.</p>
<p>P.S. Javascript это жесть. Моё поколение, взрощенное на Basic, Pascal и <a href="https://ru.wikibooks.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%88%D0%BA%D0%BE%D0%BB%D0%B5">прочем говне</a> в шоке от такой роскоши.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>