Pull to refresh
14
0
Eugene Kononenko @kevin

Специалист по информ. безопасности zanket.com

Send message

Создание красивых градиентов на CSS

Reading time 5 min
Views 20K
Вот линейный градиент на CSS, идущий от чисто жёлтого до чисто синего цвета:


Заметили, что в центре он становится бледным и грязным?

Это явление Эрик Кеннеди назвал «мёртвой зоной серого». Если вы тщательно не выбираете цвета для своих градиентов, то в ваших градиентах на CSS часто возникает такая обесцвеченная часть посередине.

Однако, как оказалось, можно полностью избавиться от мёртвой зоны серого. В этом посте я расскажу, почему она возникает, и о том, как можно использовать теорию цвета для создания насыщенных, ярких градиентов, «живых» по всей своей длине.
Читать дальше →
Total votes 67: ↑63 and ↓4 +59
Comments 30

30 команд Git, необходимых для освоения интерфейса командной строки Git

Reading time 9 min
Views 370K

Git — самая популярная в мире распределённая система контроля версий. Линус Торвальдс, разработчик ядра ОС Linux, создал этот инструмент ещё в 2005 году, а сегодня Git активно поддерживается как проект с открытым исходным кодом. Огромное количество открытых и коммерческих проектов используют Git для контроля версий.

В данной статье перечисляются самые основные команды, которые следует знать разработчику, чтобы освоить управление репозиториями GitHub на высоком уровне. Ознакомиться с ними будет полезно как новичкам, так и опытным разработчикам.
Читать дальше →
Total votes 84: ↑69 and ↓15 +54
Comments 63

PHPStorm + XDebug + Docker

Reading time 3 min
Views 25K

Ещё одна статья на избитую тему? Да! Потому что за два часа поиска не нашёл ни одной, по которой можно было пройтись от и до и получить работающее окружение.

Шагов, на самом деле, немного, все очень простые, нужно лишь...

Читать далее
Total votes 22: ↑22 and ↓0 +22
Comments 10

Надеть Telegram на OpenVPN и завернуть это в Docker

Reading time 8 min
Views 16K

Мигрируя в этом году свою инфраструктуру в новый датацентр, поймал себя на мысли о том, что возраст моей виртуальной частной сети (VPN) для доступа к серверам и устройствам перевалил за 10 лет.

Мой старый товарищ OpenVPN ни разу не подвел меня.

Подумав обо всех неудобствах и издержках я решил улучшить имеющийся механизм управления всем VPN-хозяйством.

Под катом вы найдете детали того, что получилось. Кратко, результат следующий: композиция из двух docker-контейнеров, которые превращаются в telegram-бота для управления VPN сервисом. И для этого нужно выполнить всего две команды в консоле.

Механизм управления VPN сервисом теперь не требует каких-либо навыков системного администрирования или доступа к Linux-консоли при выполнении рутинных операций. Например, чтобы сделать сертификаты новому пользователю вам достаточно иметь телефон с telegram-клиентом.

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

Полезного чтения
Total votes 24: ↑22 and ↓2 +20
Comments 2

Мультиван и маршрутизация на Mikrotik RouterOS

Reading time 30 min
Views 229K
Адаптировано под ROS6 и ROS7. Редакция от 28.12.2021

Введение


Статья ориентирована на начинающих администраторов Mikrotik RouterOS (далее ROS). В ней рассматривается маршрутизация с резервированием для нескольких не связанных multihomed AS каналов интернет, работающих по протоколу IPv4. Так же есть настройки для обеспечения базовой безопасности. «Автоматическая» балансировка исходящего трафика по каналам в данной статье не описана по причине того, что ее реализация на таких исходных данных — это череда компромиссов и ограничений, требующая отдельного рассмотрения. Инструментарий для «ручной» балансировки в статье содержится и приведенные настройки являются хорошей базой для добавления «автоматической» балансировки, как минимум полудюжиной способов.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 24

У семи программистов адрес без дома

Reading time 4 min
Views 96K
Привет, Хабр!

Мы в HumanFactorLabs парсим адреса в особо крупных размерах. Наши продукты упрощают ввод контактных данных и работу с ними.

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

Недавно на Хабре нас попросили привести примеры необычных адресов, в связи с чем и написана эта статья.
Читать дальше →
Total votes 104: ↑101 and ↓3 +98
Comments 211

Как GitLab помогает делать бэкапы больших хранилищ NextCloud

Reading time 8 min
Views 6K

Привет, Хабр!


Сегодня я хочу рассказать о нашем опыте автоматизации резервного копирования больших данных хранилищ Nextcloud в разных конфигурациях. Я работаю СТО в «Молния АК», где мы занимаемся конфигурационным управлением IT систем, для хранения данных используется Nextcloud. В том числе, с распределенной структурой, с резервированием.


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


Предыстория


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


Мы предлагаем варианты хранения бэкапа у нас или у заказчика на его отдельных от Nextcloud машинах, что требует гибкого автоматизированного подхода к администрированию.


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


Для начала посмотрим на вводные данные. Нам нужно:


  • Масштабируемость в плане одна нода или несколько. Для крупных исталляций мы используем в качестве хранилища minio.
  • Узнавать о проблемах с выполнением бэкапа.
  • Нужно хранить бэкап у клиентов и/или у нас.
  • Быстро и легко разбираться с проблемами.
  • Клиенты и установки сильно отличаются один от другого — единообразия добиться не получается.
  • Скорость восстановления должна быть минимальна по двум сценариям: полное восстановление (дизастер), одна папка — стерто по ошибке.
  • Обязательна функция дедупликации.


Для решения задачи управления бекапами мы прикрутили GitLab. Подробнее подкатом.

Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 6

Пять задач, которые приходится решать при трудоустройстве начинающим Java-разработчикам в 2022 году

Reading time 6 min
Views 40K

Хабр, привет! Меня зовут Даниил Пилипенко, я программный директор факультета backend-разработки направления «Программирование» Skillbox, директор центра подбора IT-специалистов SymbioWay. Сегодня разберём практические задачи, с которыми могут столкнуться Java-разработчики junior-уровня на собеседовании. Такого рода задачи мы часто видим на собеседованиях наших клиентов и коллег, а также сами даём соискателям.

Читать далее
Total votes 25: ↑20 and ↓5 +15
Comments 47

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Reading time 37 min
Views 81K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Total votes 88: ↑87 and ↓1 +86
Comments 27

Оптимизация загрузки js бандла использующего icon pack’и

Reading time 3 min
Views 2.5K

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

Мое приложение состоящее из 2х элементов весит 722kb. Но почему?

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 5

RHVoice Lab: как незрячие разработчики создают голоса для синтезатора речи

Reading time 12 min
Views 4.2K

Привет, Хабр! Представьте на секунду, что этот текст вы не пробегаете глазами, пока допиваете кофе, а слушаете в выбранной озвучке, лишь примерно представляя, как выглядит верстка страницы. Тем не менее, именно так статью «прочитают» незрячие люди, в том числе энтузиасты RHVoice Lab.

RHVoice Lab – это некоммерческая лаборатория по созданию новых голосов для одноименного отечественного синтезатора речи. Его особенность в том, что он создан специально для слабовидящих и незрячих людей, для бытового использования. За год существования RHVoice Lab создала до десяти новых голосов, в том числе для английского и украинского языков. Благодаря команде проекта незрячие люди могут выбирать голос подходящего им тембра и звучания или «озвучивать» навигацию по интернету голосами известных людей.

Руководитель проекта Артём Плаксин рассказал, как появилась идея RHVoice Lab, как воссоздать голос Артемия Лебедева при помощи сервера от Selectel и можно ли быть программистом, если ты не видишь код.
Total votes 47: ↑47 and ↓0 +47
Comments 2

Как я разрабатывал интеграцию для Home Assistant

Reading time 8 min
Views 16K

Так сложилось что недавно я поставил себе Home Assistant (далее HA) для управления всем моим зоопарком устройств из одного места, что оказалось довольно удобно. Но без ложки дегтя никуда и нашлось все таки одно устройство, интеграции для которого в HA не было, а привязать его хотелось. Было решено написать собственную интеграцию. Если интересно, что из этого вышло, добро пожаловать под кат.

Читать далее
Total votes 12: ↑12 and ↓0 +12
Comments 14

Как изучить SQL за ночь или шпаргалка для системного аналитика

Level of difficulty Easy
Reading time 10 min
Views 135K

Помните, как вы были студентами, и готовились к экзаменам по ночам?

Предлагаю вашему вниманию простую шпаргалку по SQL с теорией и практикой, которой вы сможете воспользоваться в любое время.

Изучите теорию на примерах и закрепите на 13 практических задачах по SQL.

Читать далее
Total votes 62: ↑57 and ↓5 +52
Comments 41

Основы контейнеризации (обзор Docker и Podman)

Reading time 16 min
Views 119K

Привет, Хабр!

К 2022 году о контейнеризации не слышал только ленивый. Большинство специалистов, так или иначе имеющих отношение к ИТ, хотя бы раз в жизни запускали программное обеспечение в контейнерах. Однако так ли эта технология проста и понятна? Давайте разбираться вместе!

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

Читать далее
Total votes 26: ↑26 and ↓0 +26
Comments 22

Почта для домена в Telegram

Reading time 2 min
Views 13K

Дважды начинал эту заметку ибо откровений и контента мало. Решая личную проблему переезда входящей почты с Yandex 360, оказалось, что бесплатных парковок "на западе" не имеется. Zoho как альтернатива, определенно, хорош, но 90 центов за домен в месяц для десятка доменов с сотней текстовых входящих показалось избыточным. На коленке был собран wizard, связывающий SendGrid и Telegram вместе.

Читать далее
Total votes 21: ↑16 and ↓5 +11
Comments 17

Material You: раскладываем по полочкам обновление дизайн-системы Material

Reading time 7 min
Views 25K

Персонализация смартфона, свежая палитра цветов Material, обновлённые компоненты — от кнопок до диалогов.

Всё это — про Material You, новую дизайн-систему от Google для мобильных и веб-приложений! Разбираем новую систему цветов и все нововведения Material.

Читать далее
Total votes 11: ↑9 and ↓2 +7
Comments 10

Я всегда с собой беру…

Reading time 9 min
Views 57K

Некоторые сотовые провайдеры не разрешают раздавать их безлимитный интернет без дополнительной оплаты. Приобретать отдельное походное устройство по обеспечению широкополосного беспроводного доступа в глобальную сеть с абонентской оплатой более 1к рублей в месяц ради нескольких дней в году может совсем не хотеться. В связи с этими обстоятельствами в статье рассмотрено, как сотовые операторы узнают о раздаче доступа в интернет с мобильных устройств, а также какие возможности имеются на борту RouterOS по обеспечению приватности подобных действий.
Читать дальше →
Total votes 118: ↑115 and ↓3 +112
Comments 134

15 супер полезных примеров команды find в Linux

Reading time 9 min
Views 68K

Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.
Читать дальше →
Total votes 42: ↑38 and ↓4 +34
Comments 17

Самые заметные изменения языка php за последние годы

Reading time 9 min
Views 19K

Я начинал работать с php, когда еще не потерял популярность его 4 выпуск, с тех пор произошли огромные изменения. На мой взгляд, последние несколько лет преобразили разработку на нем.  Кстати php продолжает быть серьезно востребованным, например, сейчас “Рексофт” развивает на нем несколько проектов. В одном из них работаю и я.  Но перейдем к делу. Делюсь с вами самыми интересными изменениями в php, прошедшими с 5 до версии 8.1.

Одним из самых распространенных классов в веб-разработке я бы назвал сущность User, предназначенную для работы с пользователями. В парадигме MVC ее можно назвать моделью пользователя, которая хранит данные (свойства) и предоставляет доступ к ряду методов работы с ними, а также бизнес-логику, связанную с областью применения класса. На примере такого класса я и хочу посмотреть сам и показать тебе, читатель, как изменился язык php за последнии годы.

Для удобного изменения кода, и чтобы в дальнейшем проще было отслеживать, что в каком порядке менялось, я создал репозиторий на гитхаб. Ссылка на репозиторий: https://github.com/ZhukMax/php-evo. Отразил в коммитах каждый шаг, который ниже постараюсь подробно описать.

Читать далее
Total votes 57: ↑57 and ↓0 +57
Comments 19

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity