<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Проекти</title>
<link>https://www.stefaniuk.website/tags/projects/</link>
<description>Всім привіт! Я — Богдан, фулстек розробник з Києва. Пишу в основному про програмування та штуки які вивчаю. Час від часу публікую підбірки фоток, зроблених на плівку, розказую про подорожі та цікаві речі, що оточують мене.</description>
<author></author>
<language>uk</language>
<generator>Aegea 11.2 (v4116)</generator>

<itunes:subtitle>Всім привіт! Я — Богдан, фулстек розробник з Києва. Пишу в основному про програмування та штуки які вивчаю. Час від часу публікую підбірки фоток, зроблених на плівку, розказую про подорожі та цікаві речі, що оточують мене.</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Semantica — тема для Visual Studio Code</title>
<guid isPermaLink="false">217</guid>
<link>https://www.stefaniuk.website/all/semantica-tema-dlya-visual-studio-code/</link>
<pubDate>Sat, 25 Apr 2020 09:16:49 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/semantica-tema-dlya-visual-studio-code/</comments>
<description>
&lt;p&gt;Красивая тема редактора сильно влияет на удобство работы с кодом. Я перепробовал множество разных тем, сначала были тёмные, но спустя какое-то время я перешёл на светлые. Большинство тем меня не устраивали. Для меня важно чтобы: интерфейс не обращал на себя внимания, подсветка кода похожая на то что есть в обычной Visual Studio и Rider.&lt;/p&gt;
&lt;p&gt;Однажды наткнулся на отличную тему &lt;a href="https://github.com/tonsky/vscode-theme-alabaster"&gt;Alabaster&lt;/a&gt;. Общая цветовая палитра мне зашла, но вот подсветка синтаксиса слишком минималистичная. В итоге решил на основе этой темы запилить свою. Добавил подсветку синтаксиса похожую на Visual Studio Light и Rider Light. В итоге получилась новая тема — Semantica.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/icon.jpg" width="225" height="225" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Логотип темы.&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Ссылки&lt;/h2&gt;
&lt;p&gt;Исходный код: &lt;a href="https://github.com/teamkiller7112/vscode-theme-semantica"&gt;https://github.com/teamkiller7112/vscode-theme-semantica&lt;/a&gt;&lt;br /&gt;
Маркетплейс: &lt;a href="https://marketplace.visualstudio.com/items?itemName=bogdanstefanjuk.theme-semantica"&gt;https://marketplace.visualstudio.com/items?itemName=bogdanstefanjuk.theme-semantica&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Скриншоты&lt;/h2&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/csharp.jpg" width="1000" height="610" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/json.jpg" width="1000" height="610" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/xml.jpg" width="1000" height="610" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;PS&lt;/h2&gt;
&lt;p&gt;Замечания или пожелания оставляйте на &lt;a href="https://github.com/teamkiller7112/vscode-theme-semantica/issues"&gt;гитхабе&lt;/a&gt;. Если тема понравилась — поставьте звездочку в &lt;a href="https://github.com/teamkiller7112/vscode-theme-semantica"&gt;репозитории&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;В качестве шрифта советую использовать &lt;a href="https://www.jetbrains.com/ru-ru/lp/mono/"&gt;JetBrains Mono&lt;/a&gt;.&lt;/p&gt;
</description>
</item>

<item>
<title>Идеи для программистов</title>
<guid isPermaLink="false">189</guid>
<link>https://www.stefaniuk.website/all/idei-dlya-programmistov/</link>
<pubDate>Fri, 27 Dec 2019 16:41:49 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/idei-dlya-programmistov/</comments>
<description>
&lt;p&gt;Много начинающих программистов — сам был таким — маются от вопроса: чего бы такого классного напрограммировать. Месяц за месяцем, год за годом проходят в ожидании достойной идеи™. «Вот бы мне проект, я уж я бы взялся за него, я б тогда выложился на все сто».&lt;/p&gt;
&lt;p&gt;Некоторым везёт, и они быстро попадают в классную команду на крутой проект. Кому повезло меньше, сидит в суровом энтерпрайзе и жаждет поделать какой-нибудь пет-проджект для души. Вот только идеи нет…&lt;/p&gt;
&lt;p&gt;Я придумал решение. Надо брать любую штуку, которая вам нравится, и просто попытаться повторить её. Нравится тетрис? Запрограммируйте тетрис. Нравится тот же Майнкрафт? Запилите свой Майнкрафт. Если при этом не хочется возиться с трёхмеркой (хотя, чего там возиться, с первого-то взгляда? :—) — делайте двумерный.&lt;/p&gt;
&lt;p&gt;Я однажды так делал игрушку с паравозиками. Правда, интерфейс мне было неинтересно делать. Зато крайне увлекала логика переключения стрелок, семафоров, решение коллизий и всё такое. Вот так я и играл в эти свои паровозики: в юниттестах.&lt;/p&gt;
&lt;p&gt;Смысл не в том, чтобы сделать продукт. И даже не в том, чтобы выключить радары, в поисках крутую идею. Смысл в том, чтобы, пока крутая идея не пришла, занять время чем-то полезным. А потом, когда придёт время клёвого проекта, скилл уже будет прокачан и будет шанс не запороть идею, а таки реализовать её.&lt;/p&gt;
&lt;p&gt;Ещё один бонус: в повторении чужих проектов можно выбирать, на чём концентрироваться. В готовых-то продуктах уже всё продумано: можно брать готовые интерфейсы, логику, арты и прочее-прочее. Плюс выбираем для воспроизведения то, что нравится. А не суровый энтерпрайз (хотя, кому-то и это нравится). И ещё не надо заморачиваться с прочими нюансами работы над реальными проектами: аналитика, требование, планирование, коммуникации и прочее-прочее. Делаем чисто для себя, как упражнение из учебника.&lt;/p&gt;
&lt;p&gt;На самом деле это решение придумал не я, конечно же. У древних мастеров это был главный способ прокачиваться: повторять за лучшими. Ну и чем мы хуже?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Оригинал статьи: &lt;a href="https://t.me/anatoly_burov_channel/116"&gt;https://t.me/anatoly_burov_channel/116&lt;/a&gt; &lt;/b&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Как я делал бота для Facebook workplace</title>
<guid isPermaLink="false">171</guid>
<link>https://www.stefaniuk.website/all/create-workplace-messenger-bot/</link>
<pubDate>Tue, 26 Nov 2019 10:22:26 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/create-workplace-messenger-bot/</comments>
<description>
&lt;p&gt;Дали мне задачу: написать бота для мессенджера workplace, с помощью которого можно получать уведомления из нашей CRM и управлять разными вещами. Расскажу о разных интересных вещах с которыми я столкнулся. Бота писал с помощью ASP.NET Core Web API.&lt;/p&gt;
&lt;h2&gt;Вебхуки&lt;/h2&gt;
&lt;p&gt;Для того чтобы бот мог обрабатывать запросы и сообщения от Facebook нам надо настроить вебхуки. Webhook — механизм оповещения системы о событиях. Для того чтобы Facebook принял наш хук, он должен обрабатывать как GET так и POST запросы.&lt;/p&gt;
&lt;p class="note"&gt;&lt;a href="https://developers.facebook.com/docs/messenger-platform/getting-started/webhook-setup"&gt;Подробнее о Webhook в официальной документации&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;GET запрос служит для валидации работы нашего эндпоинта. POST принимает данные связанные с активностью пользователя, будь то нажатие на кнопки или другая активность.&lt;/p&gt;
&lt;p class="cut-button"&gt;Показать код метода-обработчика GET запроса&lt;/p&gt;
&lt;div class="cut-content"&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;public IActionResult Receive( [FromQuery(Name = &amp;quot;hub.mode&amp;quot;)] string mode, 
    [FromQuery(Name = &amp;quot;hub.challenge&amp;quot;)] string challenge, 
    [FromQuery(Name = &amp;quot;hub.verify_token&amp;quot;)] string verifyToken)
{ 
   if (string.IsNullOrEmpty(verifyToken)) { 
       return Unauthorized(); 
    }  
    if (verifyToken.Equals(FacebookEnvironment.FacebookVToken)) { 
        return Ok(challenge); 
    } 
    return Unauthorized(); 
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В качестве verify_token используется токен, который мы указали при регистрации нашего хука.&lt;/p&gt;
&lt;/div&gt;&lt;p class="cut-button"&gt;Показать код метода-обработчика POST запроса&lt;/p&gt;
&lt;div class="cut-content"&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;public async Task&amp;lt;IActionResult&amp;gt; Receive([FromBody]FbResponse response = null)
{
    if (response is null) {
        return BadRequest();
    }

    if (response.Object != &amp;quot;page&amp;quot;) {
        return Ok();
    }

    foreach (var entry in response.Entries) {
        foreach (var message in entry.Messaging) {
            await PrepareMessageAsync(message);
        }
    }
    return Ok(&amp;quot;EVENT_RECEIVED&amp;quot;);
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;Авторизация запросов Facebook&lt;/h2&gt;
&lt;p&gt;Для авторизации Facebook использует специальный http заголовок (X-Hub-Signature), в нем он передает некую сигнатуру с помощью которой мы можем авторизовать запрос. Для того чтобы добавить такую функциональность в наш контроллер, добавим фильтр.&lt;/p&gt;
&lt;p class="cut-button"&gt;Пример кода, для проверки подписи&lt;/p&gt;
&lt;div class="cut-content"&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;private const string Sha1Prefix = &amp;quot;sha1=&amp;quot;;

public static bool Validate(string signature, string contentString) {
    if (!signature.StartsWith(Sha1Prefix, StringComparison.OrdinalIgnoreCase)) {
        return false;
    }
    var secret = Encoding.ASCII.GetBytes(FacebookEnvironment.AppSecret);
    var signatureWithoutPrefix = signature.Substring(Sha1Prefix.Length);
    var content = Encoding.ASCII.GetBytes(contentString);
    return GetIsHashValid(secret, signatureWithoutPrefix, content);
}

private static bool GetIsHashValid(byte[] secret, string signature, byte[] content) {
    using var hmac = new HMACSHA1(secret);
    var hash = hmac.ComputeHash(content);
    var hashString = ToHexString(hash);
    return hashString.Equals(signature);
}

private static string ToHexString(IReadOnlyCollection&amp;lt;byte&amp;gt; bytes)
{
    var builder = new StringBuilder(bytes.Count * 2);
    foreach (var b in bytes)
    {
        builder.AppendFormat(&amp;quot;{0:x2}&amp;quot;, b);
    }

    return builder.ToString();
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;Тестирование бота&lt;/h2&gt;
&lt;p class="note-md"&gt;&lt;a href="http://winitpro.ru/index.php/2017/11/03/ustanovka-besplatnogo-ssl-sertifikata-lets-encrypt-na-iis-v-windows-server-2012-r2/"&gt;Как установить letsencrypt сертификат для IIS&lt;/a&gt;. Если же вы используете связку в виде ubuntu и nginx вам подойдет &lt;a href="https://www.digitalocean.com/community/tutorials/nginx-let-s-encrypt-ubuntu-18-04-ru"&gt;эта инструкция&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Для тестирования нужно развернуть бот на сервере, который смотрит в мир. Также необходимо чтобы у сервера было доменное имя и валидный SSL сертификат. В моем случае, в качестве сервера выступала машина на винде, так как другой внутри нашей сети не было. Как мне показалось захостить приложение написанное на .NET Core намного проще под Ubuntu + nginx нежели под Windows + IIS. В качестве поставщика сертификатов выбрал letsencrypt, так как они предоставляют бесплатный сертификат на 3 месяца, с возможностью дальнейшего обновления.&lt;/p&gt;
</description>
</item>

<item>
<title>Эгея Power-Ups</title>
<guid isPermaLink="false">172</guid>
<link>https://www.stefaniuk.website/all/e2-power-ups/</link>
<pubDate>Mon, 25 Nov 2019 10:30:51 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/e2-power-ups/</comments>
<description>
&lt;p&gt;Решил опубликовать несколько своих доработок, которые добавляют в движок новые функции. Вы можете их свободно использовать в любых ваших целях.&lt;/p&gt;
&lt;h2&gt;Список улучшений&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Кнопка «подробнее» или кат внутри заметок&lt;/li&gt;
&lt;li&gt;Заметки на полях&lt;/li&gt;
&lt;li&gt;Хайлайты&lt;/li&gt;
&lt;li&gt;Мини галерея&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Кнопка «подробнее» или кат&lt;/h2&gt;
&lt;p&gt;Когда пишешь статью и у тебя много исходников, удобно их скрыть под кат, чтобы они не увеличивали размер статьи не отвлекали от текста. Для этого добавил поддержку катов внутри заметок. Для этого нужно сделать 2 вещи:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Пометить текст, который будет выступать в качестве кнопки: .cut-button Название кнопки.&lt;/li&gt;
&lt;li&gt;Следующим элементов разместить блок div с классом cut-content и в него поместить нужный контент для скрытия.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Как это выглядит в коде:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;.cut-button Два лучших вопроса для собеседования
&amp;lt;div class=&amp;quot;cut-content&amp;quot;&amp;gt;
Как бы вы описали идеального кандидата на эту должность?
Как вы будете судить, хорош ли я в том, что потребуется от меня через 1-3 месяца?
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Как это работает&lt;/p&gt;
&lt;p class="cut-button"&gt;Два лучших вопроса для собеседования&lt;/p&gt;
&lt;div class="cut-content"&gt;&lt;p&gt;Как бы вы описали идеального кандидата на эту должность?&lt;br /&gt;
Как вы будете судить, хорош ли я в том, что потребуется от меня через 1-3 месяца?&lt;/p&gt;
&lt;/div&gt;&lt;h2&gt;Стилизация в виде карточке&lt;/h2&gt;
&lt;p&gt;Если необходимо выделить какой-то блок текста в заметке можно использовать хайлайты. Для этого достаточно обернуть текст, который хотите выделить в div с классом highlight.&lt;/p&gt;
&lt;p&gt;Как выглядит в коде:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;div class=&amp;quot;highlight&amp;quot;&amp;gt;
Как бы вы описали идеального кандидата на эту должность?
Как вы будете судить, хорош ли я в том, что потребуется от меня через 1-3 месяца?
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Как работает&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;p&gt;Как бы вы описали идеального кандидата на эту должность?&lt;br /&gt;
Как вы будете судить, хорош ли я в том, что потребуется от меня через 1-3 месяца?&lt;/p&gt;
&lt;/div&gt;&lt;h2&gt;Заметки на полях&lt;/h2&gt;
&lt;p class="note"&gt;Блог с реализацией заметок: &lt;a href="http://mopsicus.ru/all/aegea-field-notes/"&gt;&lt;a href="http://mopsicus.ru"&gt;http://mopsicus.ru&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Эту функциональность я подсмотрел в другом блоге и решил перенести в свой. Пригодится, когда нужно указать ссылку на ресурс по теме или просто примечание. Также добавил возможность указывать тип заметки. По умолчанию заметка не занимает отдельный абзац в тексте.&lt;/p&gt;
&lt;p&gt;Как выглядит в коде:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;.note Блог с реализацией заметок:  ((http://mopsicus.ru/all/aegea-field-notes/ http://mopsicus.ru)).
.note-md Блог с реализацией заметок: ((http://mopsicus.ru/all/aegea-field-notes/ http://mopsicus.ru)).&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Как выглядит на мобиле:&lt;/p&gt;
&lt;div class="category-block"&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/large-notes-on-mobile.jpg" width="300" height="165" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Во всю ширину экрана.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="category-block"&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/original-notes-on-mobile.jpg" width="300" height="165" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Обтекаемый текст.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;b&gt;Мини галерея&lt;/b&gt;&lt;br /&gt;
Можно вывести несколько изображений в ряд. Пока что это реализовано тольк для 3 и 4 картинок. В будущем планирую добавить возможность открывать изображение на весь экран.&lt;/p&gt;
&lt;p&gt;Как выглядит в коде:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;div class=&amp;quot;card-gallery card-gallery-4&amp;quot;&amp;gt;
    &amp;lt;!-- Список ссылок на изображения --&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;div class=&amp;quot;card-gallery card-gallery-3&amp;quot;&amp;gt;
    &amp;lt;!-- Список ссылок на изображения --&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Как выглядит на страницу&lt;/p&gt;
&lt;div class="card-gallery card-gallery-4"&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/card-gallery-preview.jpg" width="450" height="327" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/card-gallery-preview.jpg" width="450" height="327" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/card-gallery-preview.jpg" width="450" height="327" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/card-gallery-preview.jpg" width="450" height="327" alt="" /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="card-gallery card-gallery-3"&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/card-gallery-preview.jpg" width="450" height="327" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/card-gallery-preview.jpg" width="450" height="327" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/card-gallery-preview.jpg" width="450" height="327" alt="" /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;h2&gt;Где скачать?&lt;/h2&gt;
&lt;p&gt;Все исходники выложил на &lt;a href="https://github.com/teamkiller7112/e2-power-ups"&gt;github&lt;/a&gt;. Там же вы найдете инструкцию по установке.&lt;/p&gt;
&lt;h2&gt;PS&lt;/h2&gt;
&lt;p&gt;Если у вас есть предложения, оставляйте их в комментариях, а лучше в issue на github-е. Как будет время, займусь реализацией предложений.&lt;/p&gt;
&lt;style&gt;
.category-block { width: 28%;  display: inline-block; vertical-align: top; margin-right: 1%; margin-bottom: 20px;}
@media (max-width: 700px) {
.category-block { width: 100%; margin-right: unset;}
}
&lt;/style&gt;
</description>
</item>

<item>
<title>Проекты</title>
<guid isPermaLink="false">129</guid>
<link>https://www.stefaniuk.website/all/my-projects/</link>
<pubDate>Tue, 08 Oct 2019 16:48:37 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/my-projects/</comments>
<description>
&lt;h2&gt;Semantica — тема для vs code&lt;/h2&gt;
&lt;p&gt;&lt;i&gt; Апреля 2020&lt;/i&gt;&lt;br /&gt;
Минималистичная тема, которая не отвлекает от процесса написания кода.&lt;br /&gt;
Описание: &lt;a href="https://stefaniuk.website/all/semantica-tema-dlya-visual-studio-code/"&gt;https://stefaniuk.website/all/semantica-tema-dlya-visual-studio-code/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Склад&lt;/h2&gt;
&lt;p&gt;&lt;i&gt; Середина 2019 года&lt;/i&gt;&lt;br /&gt;
Текущее состояние: закрыт&lt;br /&gt;
Склад — приложение, которое позволяет сохранять закладки и организовывать с помощью тегов. Делал в первую очередь для себя. Также данный проект служит для меня площадкой для тестирования новых технологических решений. Планирую в ближайшем будущем открыть исходный код на Github.&lt;/p&gt;
&lt;p&gt;Технологии: ASP.NET Core MVC, Entity Framework Core, PostgreSQL, JavaScript, bash.&lt;/p&gt;
&lt;h2&gt;Сайт для школы Educational hub «ABC»&lt;/h2&gt;
&lt;p&gt;&lt;i&gt; Середина 2018 года&lt;/i&gt;&lt;br /&gt;
Занимался полным циклом разработки (дизайн, верстка, серверная часть, организация CI/CD).&lt;/p&gt;
&lt;p&gt;Технологии: ASP.NET Core, SQLite, Entity Framework Core, HTML/CSS, bash.&lt;br /&gt;
Ссылка на сайт: &lt;a href="https://educationalhub-abc.com.ua"&gt;https://educationalhub-abc.com.ua&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Windows server manager&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Начало 2018 года&lt;/i&gt;&lt;br /&gt;
Веб приложение для управления серверами на базе Windows с помощью веб интерфейса. Часть функциональности была заточена специально для нашей команды на работе. На текущий момент проект не активен, так как потерял актуальность. В планах есть идея восстановить его и сделать более универсальным.&lt;/p&gt;
&lt;p&gt;Технологии: ASP.NET MVC 5&lt;/p&gt;
&lt;h2&gt;WebCars&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Начало 2017 года&lt;/i&gt;&lt;br /&gt;
Интернет аукцион для покупки и продажи проверенных автомобилей. Из интересных особенностей: каждый автомобильно должен был пройти проверку в выбранном СТО, отчет доступен каждому пользователю. Также этот проект был для меня первым, именно с него начался отсчет моего коммерческого опыта разработки. На текущий момент сайт отключен.&lt;br /&gt;
Что делал:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Написал большую часть серверной логики.&lt;/li&gt;
&lt;li&gt;Интеграция с IP телефонией.&lt;/li&gt;
&lt;li&gt;Корпоративный блог&lt;/li&gt;
&lt;li&gt;Личные кабинеты для СТО и администраторов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Технологии: ASP.NET MVC 5, Entity Framework, JavaScript, JQuery, HTML/CSS&lt;/p&gt;
</description>
</item>

<item>
<title>Старые проекты: моя домашняя страница</title>
<guid isPermaLink="false">145</guid>
<link>https://www.stefaniuk.website/all/my-old-personal-home-page/</link>
<pubDate>Mon, 23 Sep 2019 07:38:11 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/my-old-personal-home-page/</comments>
<description>
&lt;p&gt;На выходных просматривал файлы на старых жестких дисках и нашел мини проект моей домашней страницы. В те времена (2016-2017 год) я хотел сделать страничку стилизованную под Windows 98.  Но дальше парочки статичных блоков дело не дошло. И я решил в один из вечеров доделать идею до конца.&lt;/p&gt;
&lt;p&gt;Составил список того что надо добавить:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Возможность перемещать окна&lt;/li&gt;
&lt;li&gt;При выборе окна — делать его активным и отображать поверх остальных&lt;/li&gt;
&lt;li&gt;Часы&lt;/li&gt;
&lt;li&gt;Меню «Пуск»&lt;/li&gt;
&lt;li&gt;Рабочую панель задач&lt;/li&gt;
&lt;li&gt;Возможность открывать и закрывать окна&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Так как делал на коленке и за час, то код соответствующий. В дальнейшим перепишу и выложу на Github.&lt;/p&gt;
&lt;p&gt;Видео с демо моей старой страницы:&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/0h7jgPLvmYA?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;А вот что получилось. Если хотите сами пощелкать — &lt;a href="https://stefaniuk.website/personal/index.html"&gt;ссылка на демо&lt;/a&gt;.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/nuf69ptnr8w?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Антон Шеин — Мечтать вредно</title>
<guid isPermaLink="false">115</guid>
<link>https://www.stefaniuk.website/all/anton-shein-mechtat-vredno/</link>
<pubDate>Thu, 15 Aug 2019 10:53:12 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/anton-shein-mechtat-vredno/</comments>
<description>
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/0wgj5ARt-GU?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Первый проект</title>
<guid isPermaLink="false">78</guid>
<link>https://www.stefaniuk.website/all/first-project/</link>
<pubDate>Thu, 27 Jun 2019 03:53:18 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/first-project/</comments>
<description>
&lt;p&gt;Нашел в старой переписке скриншоты игры, которую я делал когда только изучал программирование на C#. Игру делал на Unity в сеттинге сталкера. Дальше одной локации и простенького управления не зашло. Жаль что видео не сохранились.&lt;/p&gt;
&lt;p&gt;Это был 2014 год.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/Q-uvwDZyHSk.jpg" width="1000" height="562" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/_PBCIo2m35Y.jpg" width="853" height="417" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/cmHa72tOn80.jpg" width="869" height="507" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/DOvFs8xlGKQ.jpg" width="1000" height="504" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/pBN-yhOJ8Pg.jpg" width="1000" height="506" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/vI-KS-BCHDs.jpg" width="1000" height="492" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/zkkjTZuP9Q0.jpg" width="1000" height="481" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Также пробовал моделировать в 3ds Max.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/rD6sM_gp1bM.jpg" width="1000" height="1000" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.stefaniuk.website/pictures/TYDws_mfX00.jpg" width="1000" height="1000" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Кстати, не путайте проект и продукт</title>
<guid isPermaLink="false">72</guid>
<link>https://www.stefaniuk.website/all/project-not-product/</link>
<pubDate>Sun, 16 Jun 2019 11:00:52 -0400</pubDate>
<author></author>
<comments>https://www.stefaniuk.website/all/project-not-product/</comments>
<description>
&lt;p&gt;Чтобы сделать проект, нужно знать, «как» его сделать. Чтобы сделать продукт, нужно знать, «что» сделать, и это совершенно другая дисциплина. Можно очень чётко сделать проект, который не превратится в продукт и умрёт. А можно всё делать через жопу, ходить кругами, но в итоге создать успешный продукт.&lt;/p&gt;
&lt;p&gt;Источник: &lt;a href="https://ksoftware.livejournal.com/429180.html"&gt;https://ksoftware.livejournal.com/429180.html&lt;/a&gt;&lt;/p&gt;
</description>
</item>


</channel>
</rss>