Мое портфолио, сертификаты и разработки

Мое портфолио, сертификаты и разработки

С самого начала, я планировал сделать из этого сайта просто небольшое одностраничное резюме в качестве приложения к резюме на HH.RU, но так как я человек увлекающийся, я как обычно немного увлекся и сделал с нуля полноценную много пользовательскую блог-платформу которой пользуюсь пока что я один. Дополнительно к этому сайту я реанимирую некоторые разработки проекта help-me-24 и естественно веду некоторые новые интересные проекты.

В рамках своего нового блога, я хотел бы представить вам свое небольшое портфолио, тут конечно лишь малая часть из того что я вспомнил, но я постараюсь дальнейшие разработки документировать или хотя бы вкратце описывать.

Записи я веду прежде всего для себя и я не пишу подробнейшие описания (за что на меня иногда обижаются читатели), я исхожу из того, что вы обладаете достаточным опытом чтобы по моим описаниям и статьям создать аналогичный сервис или устранить проблему решение которой описывал.

Я всегда оперативно отвечаю на запросы с формы обратной связи, обращениям по электронной почты и т.п. и вы можете смело обращаться ко мне за консультацией.



Записи в блоге - Мое портфолио, сертификаты и разработки


Active Directory на базе Ubuntu Linux

Active Directory на базе Ubuntu Linux

Как вводить Linux в Windows домен я уже рассказывал, а сегодня мы построим полноценный домен Active Directory, где контроллером домена будет выступать Ubuntu Server. Я бы не рекомендовал вам использовать такое решение в продакшн в качестве полноценного RW-контроллера домена, путь и резервного, а в качестве Read Only контроллера домена я пробовал использовать Ubuntu Server и все работает отлично.


Мои сертификаты WEB Frontend-разработка (Javascript и jQuery)

Мои сертификаты WEB Frontend-разработка (Javascript и jQuery)

Как вы наверное поняли, я обычно работаю один и поэтому мне приходится писать и Front и Back, до недавнего времени, я обходился банальными Django-формами и шаблонами для построения интерфейса, но все таки пришел 21-ый век и теперь уже без JS просто никуда.


Установка и настройка Teampass в Ubuntu Linux 18.04

Установка и настройка Teampass в Ubuntu Linux 18.04

В связи с расширением штата сотрудников и увеличением количества серверов и сервисов на поддержке, уже довольно остро встает вопрос создания общего хранилища паролей, ключей и прочей конфиденциалки с поддержкой механизмов разграничения прав доступа и методов совместного редактирования. Мы сейчас находимся в поиске хорошего решения этого вопроса и пробуем различные OpenSource решения которые можно было бы использовать и в случае необходимости доработать.


Мои сертификаты по администрированию Linux-систем

Мои сертификаты по администрированию Linux-систем

На разного рода официальные сертификации по Linux-серверам я не разу не ходил, так как компании мне никогда не оплачивали обучение и сертификации по этому направленю, а самому мне жалко отдавать такие деньги за бумагу, но как и в случае с HTML и CSS, я прошел ради эксперимента несколько сертификаций, все успешно. Эти тестирования я проходил с одного захода экстерном, так как сами курсы мне показались не достаточно интересным.


Я прошел небольшое обучение и тестирование по основам SQL

Я прошел небольшое обучение и тестирование по основам SQL

Так как я в основном работаю теперь с MVC, то чистый SQL я вижу довольно редко, в связи с чем, я начал ловить себя на мысли, что я забываю синтакисис SQL-запросов.


Я прошел курс по Python 3 на Sololearn

Я прошел курс по Python 3 на Sololearn

Моя эпопея с курсами на SOLOLEARN как раз начиналась с курса по Python3. Его я проходил около месяца и стоит отметить, что курс достаточно интересный, даже с моей практикой Python/Dython-разработки курс который позиционируется как вводный принес много интересных моментов.


Я завершил несколько курсов и прошел несколько сертификаций по CSS и HTML

Я завершил несколько курсов и прошел несколько сертификаций по CSS и HTML

Одним из направлений моей деятельности является техническое сопровождение разработчиков (Devops) и естественно, что для того чтобы сопровождать цикл разработки программного обеспечения мне необходимо знать язык на котором ведется разработка хотя бы на уровне джуниор-разработчика. Недавно я решил так скажем закрепить базовые навыки пройти несколько обучающих курсов и сдать экзамены, естественно, что так как это не мой основной профиль, то и курсы и сертификации я выбрал бесплатные. Все это исключительно Just for Fun.


Немного освежил познания в CSS3 (Очередной курс с Sololearn.com)

Немного освежил познания в CSS3 (Очередной курс с Sololearn.com)

И на этом с Sololearn пока заканчиваем. Все интересные курсы я там прошел и стоит отметить, что по сравнению с другими самообучалками на Sololearn можно найти и интересные вещи.


Использование jQuery Ajax для отправки данных Django-форм без обновления WEB-страницы

Использование jQuery Ajax для отправки данных Django-форм без обновления WEB-страницы

Я последнее время довольно активно использую Java Script в своих проектах. 21-ый век все таки на дворе и надо соответствовать. Хотя почему то считается, что использовать чистый Ajax для работы с формами не стоит и необходимо предоставить возможность работы и с перезагрузкой страницы, но мне кажется, что врят ли сейчас кто-то пользуется IE6, ну и если и пользуется, это его персональное горе.


Скрипты для автоматической сборки Kdenlive из GIT-репозитария с поддержкой CUDA

Скрипты для автоматической сборки Kdenlive из GIT-репозитария с поддержкой CUDA

Как вы наверное знаете, я иногда подготавливаю видео, для своего видео блога в видео-редакторе Kdenlive и в нескольких прошлых статьях я уже рассказывал как можно немного ускорить создание видео-клипов в этом редакторе, но сегодня я пошел дальше и немного модифицировал скрипты автоматизированной сборки Kdenlive для поддержки CUDA.


Разработка собственного модуля авторизации для OpenVPN

Разработка собственного модуля авторизации для OpenVPN

Как вы наверное знаете помимо стандартной авторизации по ключам и сертификатам вы можете дополнительно использовать парольную защиту как дополняющий механизм к модели сертификатов или полностью перейти исключительно на парольную авторизацию. Стоит отметить, что защищенность OpenVPN с авторизацией с использованием Login/Password будет гораздо выше чем использование механизмов PPTP например.


Установка Postgresql 10.4 на платформу ARM

Установка Postgresql 10.4 на платформу ARM

Собрать Postgresql 10.4 под платформу ARM я решил для того чтобы проверить одну свою идею по поводу логической репликации. Логическая репликация это новая фишка Postgresql 10-ой версии позволяющая реплицировать в Read only режиме отдельные таблицы на другой Postgresql server. Но вот правда одна незадача выяснилась, а именно под мою ARM-платформу собранных пакетов не нашлось.


Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Если вы используете в своей работе менеджер виртуальных машин virt-manager, то вы наверное обращали внимание, что при создании сети вы не можете выбрать режим работы сети в виде добавления интерфейсов в существующий сетевой мост, но так как в основе этого менеджера лежит KVM и Libvirt, то мы всегда можем выполнить эту операцию в ручную из консоли.


OpenVPN-сеть для LXD-кластера без назначения адресов клиентов (использование стороннего DHCP для управления клиентами VPN-сети)

OpenVPN-сеть для LXD-кластера без назначения адресов клиентов (использование стороннего DHCP для управления клиентами VPN-сети)

Представляю вашему вниманию небольшой экскурс в активно используемую мной технологию построения распределенных виртуальных сетей на базе OpenVPN в немного непривычной реализации. Если вы работаете с OpenVPN технологиями, то наверное обратили внимание что практически все руководства описывают OpenVPN сеть где OpenVPN-сервер выступет в качестве DHCP-сервера и назначает адреса для своих клиентов, но я сегодня хотел бы предложить вам уйти от типовых реализаций.


Отправка оповещений Django-приложения в приватный чат Rocket.Chat

Отправка оповещений Django-приложения в приватный чат Rocket.Chat

Вчера я подумал, что если я все же вернулся к использованию Rocket.Chat и он меня уже не так бесит как предыдущие версии, то можно настроить систему оповещений о событиях на сайте и сбоях в работе Django-приложения в приватный чат Rocket.Chat. Для Python быстро нашелся вполне работоспособный модуль который идеально подошел для отправки сообщений в приватные чаты.


Настройка WIFI-подключения в Linux-консоли и тестирование пропускной способности подключения

Настройка WIFI-подключения в Linux-консоли и тестирование пропускной способности подключения

Сегодня мы будем настраивать WIFI в Linux без использования Network Manager. Network manager конечно довольно удобный инструмент и позволяет настроить WIFI так же быстро как и в Windows, но у него есть один маленький недостаток. Ваше сетевое соединение будет неактивным пока пользователь не авторизуется в своей учетной записи и это логично с точки зрения безопасности, но абсолютно неудобно с практической точки зрения.


Установка Hg/Git/Svn хранилища репозитария Rhodecode

Установка Hg/Git/Svn хранилища репозитария Rhodecode

И хотя стандартном де-факто для построения внутренних GIT-хранилищ на данный момент является GitLab есть компании где еше не все мигрировали на Git и требуется поддержка нескольких типов репозитариев. Сегодня мы рассмотрим один из проектов корпоративных хранилищ исходных кодов с поддержкой нескольких типов репозитариев, а речь пойдет о RhodeCode. И в первом обзоре мы рассмотрим как установить, хранилище репозитариев.


Как сделать Double VPN - Подробная инструкция

Как сделать Double VPN - Подробная инструкция

В мире анонимайзеров нововведение, - Double VPN. Основной особенностью его является то, что сервер к которому мы подключаемся и сервер точкой выхода которого будет исходящий трафик, это два разных сервера, причем желательно расположенные в разных странах. Особой сложности реализация такого механизма не представляет, хотя некоторые интересные моменты там есть. Типовая схема реализации маршрутизации трафика через OpenVPN сервер использует механизм NAT и собственно сам OpenVPN в режиме изменения основного шлюза. В этом случае весь трафик клиента перенаправляется на сервер OpenVPN, где уже направляется далее в сеть Internet с подменой адреса источника.


Сборка гипервизора контейнеров LXC (LXD) из исходных кодов и настройка окружения разработчика

Сборка гипервизора контейнеров LXC (LXD) из исходных кодов и настройка окружения разработчика

Данная статья родилась в процессе работ над проектом по тестировнию функционала горячей миграции контейнеров LXC. Мы провели сборку LXD из git-репозитария и описали шаги для повторения этих манипипуляций в дальнейшем. Дополнительно мы подготовили инструкцию по созданию окружения для наших разработчиков.


Полноценный ввод рабочей станции Ubuntu Linux в Windows-домен

Полноценный ввод рабочей станции Ubuntu Linux в Windows-домен

Рабочая станция или сервер под управлением Linux-дистрибутива в Windows домене, миф или реальность? Давно уже не только реальность, а еще и достаточно типовая задача решаемая при помощи пошаговой инструкции, а если ее переложить в виде скрипта, то ввод в домен будет не сложнее чем при использовании родных утилит Windows. Так как последние версии Samba позволяют вводить рабочую станцию или сервер под управлением OS Linux в домен Windows практически без "танцев с бубном", мы проработали подробный план по вводу в домен для систем на базе Ubuntu Linux. Данная инструкция была многократно опробирована, как в рамках крупных проектов, так и типовых интерграций Ubuntu Workstations с Windows Active Directory.


Подключение и настройка геймпада Xbox 360 в Ubuntu Linux

Подключение и настройка геймпада Xbox 360 в Ubuntu Linux

Джойстик от приставки Xbox360 можно подключить к компьютеру двумя методами: проводным USB-подключением, при помощи специализированного беспроводного адаптера. Мы будем рассматривать именно второй метод - такое подключение,помимо избавления от проводов, позволяет подключить к компьютеру до четырех джойстиков одновременно. Для работы с приемником джойстика Xbox 360 в Ubuntu Linux существует штатный пакет xboxdrv, но в большинстве руководств рекомендуется использовать сторонний репозиторий rael-gc и вот здесь и начинается некоторая путаница.


Современный подход к резервному копированию контейнеров Linux-серверов

Современный подход к резервному копированию контейнеров Linux-серверов

Представляю вашему вниманию, активно применяемый мной метод ежедневного резервного копирования серверов, основанный на использовании технологии снятия копии текущего состояния LXC-контейнера и выгрузки его дампа. Данный метод не требует остановки сервера и создает полноценный образ состояния сервера (копия снимается раз в день), а промежуточные резервные копии файлов и баз данных ваших проектов вы можете выполнять с требуемой регулярностью штатными средствами базы данных и операционной системы.


SSL защита подключений к Asterisk (Let's encrypt)

SSL защита подключений к Asterisk (Let's encrypt)

Наверное каждый кто работал с SIP-технологиями знает, что обмен данными по порту 5060 осуществляется в незащищенном виде и использовать программные телефоны без защиты соединения не рекомендуется, так как ваш пароль можно легко перехватить в управляющем потоке. И если простые аппаратные телефоны вообще в принципе не имеют защиты трафика при помощи SSL и могут использоваться только в рамках локальной или VPN-сети, то программные телефоны уже наверное все поддерживают защиту соедиенения.


HTTPS-защита подключений к GITLAB

HTTPS-защита подключений к GITLAB

Как я уже говорил в заметке про установку GITLAB, этот комбайн тащит за собой набор софта включающий в себя Nginx, Postgresql и т.п., а сегодня мы будет отключать использование встроенного в GITLAB Nginx и будем использовать наш центральный Front Nginx, что позволит установить параллельно с GITLAB на одном сервере еще ряд приложений. Одной из побочных задач такого решения служит настройка HTTPS-защиты подключений к нашему внутреннему GIT-репозитарию.


Linux Workstation autodeploy script (скрипт автоматического развертывания рабочих станций)

Linux Workstation autodeploy script (скрипт автоматического развертывания рабочих станций)

Наверное каждого системного администратора рано или поздно посещает идея написать скрипт автоматической настройки рабочих станций и серверов, причем вне зависимости от того какой вы администратор Windows или Linux и если такая идея вам пришла в голову, то значит вы дозрели. Без шуток, идея просто отличная и требует обязательного воплощения! Давайте сразу же начнем его и разрабатывать.


Создание Sitemap.xml для Django-проектов

Создание Sitemap.xml для Django-проектов

Для чего нужен файл sitemap.xml я думаю объяснять не стоит и все кто знаком с web-разработкой понимают, что этот файл так же важен как и robots.txt. Если вы используете полноценную CMS, то там за вас всю работу уже проделали и например в Django CMS поддержка Sitemap.xml и Robots.txt есть что называется из коробки, но в чистых Django Framework-проектах все эти операции придется проделать самостоятельно.


Настройка основного и резервного DNS-серверов с автоинкрементом серийного номера зоны на базе PowerDNS

Настройка основного и резервного DNS-серверов с автоинкрементом серийного номера зоны на базе PowerDNS

Как вы наверное знаете, вам совсем не обязательно использовать DNS-сервера провайдера для управления вашим доменом и вы можете осуществлять хостинг DNS-записей на своих собственных DNS-серверах. Такой подход дает большую гибкость в управлении DNS-зоной, но и настройка DNS-серверов работающих в режиме MASTER-SLAVE это не самая тривиальная задача. Если вы все же решили изучить этот вопрос, то вы наверное обратили внимание, что 90% статей сводятся к настройке двух DNS-серверов Bind в режиме ведущий-ведомый и может показаться, что bind это единственный Opensource DNS-сервер.


Отправка локальной почты через удаленный MTA с авторизацией

Отправка локальной почты через удаленный MTA с авторизацией

Если у вас есть приложение которое использует для отправки почты системные функции и не поддерживает указание SMTP-сервера и учетных данных с которыми необходимо осуществлять отправку почты (например через почтовый сервер Yandex), то вам придется настроить локальный MTA (например Postfix) таки образом, чтобы он не просто отправлял почту Relay-ем на Yandex, но еще и авторизовывался на удаленном сервере.


Логирование ошибок в Django-проекте на боевом сервере

Логирование ошибок в Django-проекте на боевом сервере

Как вы наверное знаете у Django Framework имеется отличная система отладки и вывода отладочной информации при ошибке WEB-приложения и включается режим отладки простым DEBUG = True. Естественно, что на продакшн (боевых) сервера такое поведение недопустимо и в случае сбоя клиенту отображается лишь страница 500 с соответствующим кодом возврата и конечно клиенту этого вполне достаточно, но нам то необходимо оперативно отреагировать на сбой web-приложения и принять меры.


Настройка потоковой репликации Postgresql сервера (WAL-репликация)

Настройка потоковой репликации Postgresql сервера (WAL-репликация)

Потоковая репликация Postgresql сервера позволяет создать асинхронную Read Only копию сервера баз данных который можно использовать как FailOver-сервер или строить на нем какие-то тяжелые аналитические отчеты которые бы в свою очередь сильно загрузили боевой сервер. Назначений можно придумать огромное множество, да и настраивается эта технология довольно просто, правда есть у нее есть и несколько недостатков.


Установка Elastic Search в Docker-контейнер

Установка Elastic Search в Docker-контейнер

Сегодня я буду настраивать компоненты глобального поиска bpm’online customer center и первый элемент этой системы, это Elastic Search в Docker-контейнере.


Установка FreePBX на Centos 7

Установка FreePBX на Centos 7

Перевод официальной документации по установке FreePBX в Centos 7. Я прошелся по всем этапам установки и удостоверился, что все работает. Казалось бы, чего там может быть непонятно, просто бери и вводи команды последовательно из официальной документации, но как оказалось переведенная инструкция достаточно актуальная штука.


Сбор данных из Yandex Wordstat при помощи Splinter Web Testing Tool

Сбор данных из Yandex Wordstat при помощи Splinter Web Testing Tool

Для одного из свежих небольших проектов мне потребовался актуальный словарь запросов из Yandex и Google. У каждого из этих поисковых гигантов есть свои методы проведения запросов для анализа потенциальной поисковой выдачи. Естественно, что эти инструменты активно используются в черном и сером SEO, поэтому за множественные запросы вас скорее всего сразу забанят или предложат ввести капчу.


Есть вопросы? Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Моя официальная страница на FaceBook
Мой микроблог в твиттер