<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Блог Новикова Богдана</title>
    <description>Коллекция заметок web-программиста, пишем код, исследуем github, погружаемся в unix, life++
</description>
    <link>https://hcbogdan.com/</link>
    <atom:link href="https://hcbogdan.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 08 Jan 2020 08:28:34 +0000</pubDate>
    <lastBuildDate>Wed, 08 Jan 2020 08:28:34 +0000</lastBuildDate>
    <generator>Jekyll v3.8.5</generator>
    
      <item>
        <title>Мои работы</title>
        <description>После длительного простоя, блог наконце-то будет оживать. А тем временем,
подведу краткий список моих публичных работ:


  viber-bot-php - php sdk для интеграции с viber.
  spycss - отслеживаем действия пользователей с помощью CSS.
  Distance - поиск расстояний по маршрутам на php.
  OLC - работа с open location code.
  gurl - легковесная сокращаялка URL на golang
  react-auth-kit - шаблон проекта SSR + flux + altjs + авторизация (deprecated)


Мои статьи:


  Создаем CSS кейлоггер
  Отслеживаем действия пользователя с помощью CSS
  Как создать Viber-бота с помощью PHP CSS

</description>
        <pubDate>Tue, 21 Feb 2017 10:00:00 +0000</pubDate>
        <link>https://hcbogdan.com/work/2017/02/21/my-works/</link>
        <guid isPermaLink="true">https://hcbogdan.com/work/2017/02/21/my-works/</guid>
        
        
        <category>work</category>
        
      </item>
    
      <item>
        <title>Настраиваем php-fpm</title>
        <description>Попробуем определить каким образом можно повысить производительность сервера приложений на базе php-fpm, а также сформировать чек-лист для проверки конфигурации fpm процесса. Прежде всего стоит определить расположение файла-конфигурации пула. Если вы устанавливали php-fpm из системного репозитория, то конфигурация пула www будет расположена примерно тут /etc/php5/fpm/pool.d/www.conf. В случае если используется свой билд или другая ОС (не debian) следует поискать расположение файла в документации, или указывать его вручную. Попробуем рассмотреть конфигурацию подробней. Переходим на UNIX-сокеты Наверное первое, на что следует обратить внимание, это то как проходят данные от веб-сервера к вашим php процессам. Это отражено в директиве listen: listen = 127.0.0.1:9000 В случае...</description>
        <pubDate>Fri, 16 Sep 2016 10:00:00 +0000</pubDate>
        <link>https://hcbogdan.com/php/2016/09/16/php-fpm-dynamic/</link>
        <guid isPermaLink="true">https://hcbogdan.com/php/2016/09/16/php-fpm-dynamic/</guid>
        
        <category>php</category>
        
        <category>php-fpm</category>
        
        <category>linux</category>
        
        
        <category>php</category>
        
      </item>
    
      <item>
        <title>Переезжаем на jekyll ♥</title>
        <description>jekyll - это платформа для блога или статичного сайта, которая позволяет вести, поддерживать и компилировать странички/посты без значительных усилий. Сама платформа написана на Ruby, но не требует знания языка. В любом случая если Вы знакомы философией Ruby, или программируете на нем, вы без особых усилий сможете написать или модифицировать нужный плагин. Попробую описать, как без больших усилий можно перейти на замечательную платформу Jekyll. Итак, попробуем начать свой блог с помощью Jekyll (или перенести существующий, но про это позже). Первое что нам необходимо, это интерпретатор Ruby, требуемую версию которого проще всего установить с помощью rvm (Ruby Version Manager). Установим его (процесс...</description>
        <pubDate>Thu, 15 Sep 2016 22:00:00 +0000</pubDate>
        <link>https://hcbogdan.com/life/2016/09/15/jekyll/</link>
        <guid isPermaLink="true">https://hcbogdan.com/life/2016/09/15/jekyll/</guid>
        
        <category>gem</category>
        
        <category>ruby</category>
        
        <category>jekyll</category>
        
        
        <category>life</category>
        
      </item>
    
      <item>
        <title>Преимущества react</title>
        <description>Сравнительно недавно я стал работать с react только на &quot;клиентской стороне&quot;, но сразу пришло ощущение что react почти идеален для реализации интерфейса. Возможно ценители angular 1/2 могут на это возразить, с в виде аргумента что нибудь в формате &quot;TypeScript это чистый код&quot; либо &quot;angular это библиотека а не фреймворк&quot;, либо &quot;angular это production решение&quot;. Во всем этом есть доля правды, но больше лени, ведь никто не пожелает переписывать уже созданный набор моделей/компонентов/шаблонов либо изучать новый подход повсеместно внедряя его в проект. Экосистема готовых решений на angular значительно больше аналогичных на react. Также в пользу angular идет простота поддержки и старта....</description>
        <pubDate>Sun, 14 Feb 2016 15:03:19 +0000</pubDate>
        <link>https://hcbogdan.com/frontend/2016/02/14/react-benefits/</link>
        <guid isPermaLink="true">https://hcbogdan.com/frontend/2016/02/14/react-benefits/</guid>
        
        <category>js</category>
        
        <category>react</category>
        
        <category>nodejs</category>
        
        <category>ssr</category>
        
        <category>Jsx</category>
        
        
        <category>frontend</category>
        
      </item>
    
      <item>
        <title>Как работают async/await Node.js (вступление)</title>
        <description>async/await созданы для того чтобы избежать ада callback-функций в коде. Данная идея была позаимствована из C# (который также содержит операторы async/await о похожим назначением). Смысл данного оператора заключается в следующем: он позволяет создать функцию которая будет ожадать выполнения в каждой асинхронной операции прежде чем приступить к следующей инструкции (или оператору). Смысл этих операторов продемонстрирован в примере: let getResultAndConinue = async (function() { let apiResponce = await (remoteApiCall()); return processResult(apiResponce); }); Без использования операторов async и await данный пример может выглядеть следующим образом: function oldstyle(cb) { remoteApiCall(function(result){ cb( processResult(result) ); }) } oldstyle(function(result){ var getResultAndConinue = result; }) Выполнение функции getResultAndContinue (в первом примере) не блокирует ...</description>
        <pubDate>Fri, 25 Dec 2015 09:44:53 +0000</pubDate>
        <link>https://hcbogdan.com/node.js/2015/12/25/async-await/</link>
        <guid isPermaLink="true">https://hcbogdan.com/node.js/2015/12/25/async-await/</guid>
        
        <category>перевод</category>
        
        <category>nodejs</category>
        
        
        <category>Node.js</category>
        
      </item>
    
      <item>
        <title>Let's Encrypt сертификаты</title>
        <description>
    Let’s Encrypt Authority X1 и Let’s Encrypt Authority X2 получил
    кросс-сигнатуры от IdentTrust. Это означает что сертификаты будут в
    состоянии доверенных во всех основных браузерах.


    Перевести на https веб-ресурс не составит проблем, с помощью данных
    сертификатов нет необходимости:


    проводить валидацию email адреса
    платить за процедуру верификации или за сам сертификат
    следить чтобы срок действия сертификата был актуален


    Для этих целей доступна одноименная утилита letsencrypt.
    Также с помощью нее можно обновить, выпустить новый и отозвать сертификат.
    Больше подробностей на официальной
    странице проекта letsencrypt.

</description>
        <pubDate>Tue, 20 Oct 2015 06:49:40 +0000</pubDate>
        <link>https://hcbogdan.com/secure/2015/10/20/lets-encrypt/</link>
        <guid isPermaLink="true">https://hcbogdan.com/secure/2015/10/20/lets-encrypt/</guid>
        
        <category>web</category>
        
        <category>ssl</category>
        
        
        <category>secure</category>
        
      </item>
    
      <item>
        <title>Работа с open location code на php</title>
        <description>OLC это способ представления локации в форме, которая проще воспринимается людьми и выглядит немного проще чем набор цифр (широта + долгота). Данный формат особенно полезен в случае если у улиц или дома нет номера, либо существуют одинаковые названия. Что же кроме этого дает olc: Обработка локации в &quot;оффлайне&quot;. Нет необходимости иметь доступ к сети чтобы преобразовать координаты в код и наоборот. Запоминается легче чем широта+долгота с нужной точностью. К примеру, восьмизначный код &quot;8GWQC2GG+&quot; запомнить легче чем координаты. Гибкая точность. Для представления здания 14x14 метров достаточно 10-символьного кода, но более точные локации требуют код с большей длинной. Чем длинней код -...</description>
        <pubDate>Thu, 27 Aug 2015 14:37:32 +0000</pubDate>
        <link>https://hcbogdan.com/maps/2015/08/27/open-location-code/</link>
        <guid isPermaLink="true">https://hcbogdan.com/maps/2015/08/27/open-location-code/</guid>
        
        <category>php</category>
        
        <category>olc</category>
        
        <category>packagist</category>
        
        
        <category>maps</category>
        
      </item>
    
      <item>
        <title>hhvm вместе с yii-1.x</title>
        <description>Несмотря на то, что yii-1.x по результатам тестов на 98% совместим с hhvm, существуют несколько ситуаций в которых код не работает или работает не по плану. Одна из таких ситуаций - это белая страница (white page) в случае возникновения не обработанного исключения. Другими словами любое CHttpException (страница не найдена) приведет к фатальной ошибке с белой страницей. Все несовместимость заключается в схеме обработки ошибок в классе CApplication, а именно в методах handleException и  handleError (если быть точней в использовании try-catch в этих методах). Структура фреймворка позволяет выключить встроенные методы обработки ошибок c помощью констант YII_ENABLE_EXCEPTION_HANDLER и  YII_ENABLE_ERROR_HANDLER. С помощью данных констант возможно выключить или включить стандартные методы...</description>
        <pubDate>Mon, 27 Jul 2015 14:31:11 +0000</pubDate>
        <link>https://hcbogdan.com/backend/2015/07/27/hhvm-yii-1-x/</link>
        <guid isPermaLink="true">https://hcbogdan.com/backend/2015/07/27/hhvm-yii-1-x/</guid>
        
        <category>php</category>
        
        <category>yii</category>
        
        <category>hhvm</category>
        
        
        <category>backend</category>
        
      </item>
    
      <item>
        <title>Во всем виноваты программисты</title>
        <description>Человек, летящий на воздушном шаре, обнаружил, что потерялся. Он спустился немного ниже и заметил на земле человека. Спустившись ещё чуть ниже, он обратился к нему: - Простите, не могли бы вы помочь? Я договорился с другом встретиться час назад, но не знаю, где сейчас нахожусь. - Вы находитесь на воздушном шаре в трех метрах от поверхности Земли. - Вы, должно быть, программист? - Да, а как вы догадались? - Вы мне дали абсолютно точный ответ, но я совершено не представляю, что делать с этой информацией, и я всё ещё потерян. Откровенно говоря, вы мне совершенно ничем не помогли. - А вы, наверное,...</description>
        <pubDate>Mon, 20 Jul 2015 09:09:03 +0000</pubDate>
        <link>https://hcbogdan.com/fun/2015/07/20/manager-mind/</link>
        <guid isPermaLink="true">https://hcbogdan.com/fun/2015/07/20/manager-mind/</guid>
        
        <category>мысли</category>
        
        <category>lifestory</category>
        
        
        <category>fun</category>
        
      </item>
    
      <item>
        <title>Релиз Atom 1.0</title>
        <description>Отличный текстовый редактор построенный на базе web-технологий (io.js + html + css). В двух словах: он сочитает в себе гибкость emacs / vim и удобство интерфейса Sublime (а также TextMate). Редактор имеет отличное api, приятный UI, возможности кастомизации, множество плагинов и тем. Также радует открытый код и его производительность! После нескольких часов его использования, возникает вопрос: для чего нужны такие ide как webstorm, eclipse, netbeans и другие? Да, многие из них имеют какую нибудь систему сборки, построение (build system), либо другие &quot;плюшки&quot;, но в нагрузку идет сотни функций и кнопок/пунктов меню и диалогов которые просто ненужны. Все это не только  &quot;перегружают интерфейс&quot; но и создает не мало...</description>
        <pubDate>Thu, 25 Jun 2015 17:45:34 +0000</pubDate>
        <link>https://hcbogdan.com/ide/2015/06/25/atom-1/</link>
        <guid isPermaLink="true">https://hcbogdan.com/ide/2015/06/25/atom-1/</guid>
        
        <category>atom</category>
        
        <category>ide</category>
        
        
        <category>ide</category>
        
      </item>
    
  </channel>
</rss>
