Как стать автором
Обновить
2
0
Artur Aukhatov @2ray

Software Engineer

Отправить сообщение

Проект юного DevOps Глава 4: Настройка мониторинга

Уровень сложностиСредний
Время на прочтение43 мин
Количество просмотров11K

В данной серии статей описан процесс создания первого pet-проекта для начинающего инженера в DevOps:

Глава 1: Введение и подготовка стенда

Глава 2: Настройка центра сертификации и репозитория

Глава 3: Настройка OpenVPN

Глава 4: Настройка мониторинга

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии10

Как работает сеть в контейнерах: Docker Bridge с нуля

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров33K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

Читать далее
Всего голосов 71: ↑71 и ↓0+71
Комментарии14

Кручу-верчу, запутать хочу

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров14K

Салют! В этой небольшой статье я попытался собрать необычные и малоизвестные трюки с перенаправлениями в bash, которые могут значительно упростить работу.

Читать далее
Всего голосов 73: ↑72 и ↓1+71
Комментарии16

Будни техпода. Как разместить Telegram-бота на виртуальном сервере

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров8.8K


Чуть больше месяца назад мы запустили Telegram-бота, через который можно заказать виртуальный сервер. Этот бот помогает арендовать VPN-сервер, VPS из нашего маркетплейса или уникальную конфигурацию под ваши цели.

А не возникало ли у вас желания запустить собственный Telegram-бот на своей удалённой виртуалке? Если да, то добро пожаловать под кат, где мы разбираем весь процесс от заказа и подготовки виртуальной машины до запуска бота в работу. Скажем сразу, данная статья — для тех, кто мало знаком с работой Linux-систем и написанием кода Telegram-ботов, но хочет сделать по этому пути один из первых своих шагов.
Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Комментарии3

Книги, о которых редко говорят

Время на прочтение4 мин
Количество просмотров46K

Дал ему подборку книг, он приходит месяца через два, и с порога такой сразу:
— Я с друзьями не могу разговаривать.
— Ну да есть такой, недостаточек.
интервью Жака Фреско

Читать далее
Всего голосов 91: ↑89 и ↓2+87
Комментарии26

ARP Spoofing | Отравление ARP

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5K

ARP протокол предназначен для автоматического определения MAC-адреса по IP-адресу в режиме запрос ответ. Как злоумышленник может получить ваши учетки с его помощью?

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии9

Протоколы семейства TCP/IP. Теория и практика

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров97K
image

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

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

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

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии5

Снятие с воинского учета. Дистанционно. Пакет документов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров43K

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

Если вкратце, то рабочий кейс, это когда: (А) имеется основание для снятия: уже живете зарубежом полгода, либо имеется иностранный ВНЖ, (B) грамотно составлено заявление на снятие с учета и подписано вашей подписью, (C) в военкомат идет ваш представитель по доверенности, которая оформлена у российского нотариуса или в зарубежном консульстве РФ.

Ниже пояснения и документы. Делайте все красиво, грамотно, и тогда результат будет 👍

Читать далее
Всего голосов 92: ↑82 и ↓10+72
Комментарии83

Система непересекающихся множеств и её применения

Время на прочтение10 мин
Количество просмотров70K
Добрый день, Хабрахабр. Это еще один пост в рамках моей программы по обогащению базы данных крупнейшего IT-ресурса информацией по алгоритмам и структурам данных. Как показывает практика, этой информации многим не хватает, а необходимость встречается в самых разнообразных сферах программистской жизни.
Я продолжаю преимущественно выбирать те алгоритмы/структуры, которые легко понимаются и для которых не требуется много кода — а вот практическое значение сложно недооценить. В прошлый раз это было декартово дерево. В этот раз — система непересекающихся множеств. Она же известна под названиями disjoint set union (DSU) или Union-Find.

Условие


Поставим перед собой следующую задачу. Пускай мы оперируем элементами N видов (для простоты, здесь и далее — числами от 0 до N-1). Некоторые группы чисел объединены в множества. Также мы можем добавить в структуру новый элемент, он тем самым образует множество размера 1 из самого себя. И наконец, периодически некоторые два множества нам потребуется сливать в одно.

Формализируем задачу: создать быструю структуру, которая поддерживает следующие операции:

MakeSet(X) — внести в структуру новый элемент X, создать для него множество размера 1 из самого себя.
Find(X) — возвратить идентификатор множества, которому принадлежит элемент X. В качестве идентификатора мы будем выбирать один элемент из этого множества — представителя множества. Гарантируется, что для одного и того же множества представитель будет возвращаться один и тот же, иначе невозможно будет работать со структурой: не будет корректной даже проверка принадлежности двух элементов одному множеству if (Find(X) == Find(Y)).
Unite(X, Y) — объединить два множества, в которых лежат элементы X и Y, в одно новое.

На рисунке я продемонстрирую работу такой гипотетической структуры.


Как такое сделать и зачем оно нужно
Всего голосов 114: ↑109 и ↓5+104
Комментарии29

Spring-потрошитель: жизненный цикл Spring Framework

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров45K

Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.

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

Читать далее
Всего голосов 19: ↑15 и ↓4+11
Комментарии9

Проектируем приложение с Redis в качестве хранилища данных. Что? Зачем?

Время на прочтение7 мин
Количество просмотров15K

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

В этой статье мы и попытаемся ответить на эти вопросы.

Не переключайтесь.

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии20

Обзор методов множественного доступа в беспроводной связи. Часть 6. Комбинируем методы и подводим итоги

Время на прочтение19 мин
Количество просмотров3.3K

Привет, Хабр! Сегодня мы завершаем серию статей, посвящённых методам множественного доступа в беспроводной связи. Напомню, что в первой части мы рассмотрели методы частотно-временного разделения пользователей, во второй части – неортогональные методы разделения по мощности, в третьей части – методы кодового разделения пользователей, в четвёртой части – методы пространственного разделения и в пятой части – методы поляризационного разделения и с разделением по орбитальному угловому моменту.

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Будни техпода. Поднимаем VPN на VDS сервере

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров32K

В последнее время достаточно сильно выросла популярность различных VPN сервисов, и думаю, почти каждый, так или иначе, сталкивался с необходимостью получить доступ к тому или иному ресурсу, который по какой-либо причине недоступен на территории РФ. Да, есть множество бесплатных решений, которые позволяют спрятать свой IP адрес или получить доступ к нужному ресурсу, но, как говорится, «бесплатный сыр только в мышеловке», и такие сервисы, для обеспечения своего существования спокойно могут продавать всю информацию, содержащуюся в вашем трафике.

В связи с этим нам в поддержке также не удалось избежать вопросов о возможности поднятия своего VPN на наших серверах. Выделить хотел бы два вопроса: 1. IP-адрес будет принадлежать только мне, и другие пользователи не смогут его использовать? 2. Возможно ли с помощью VPN настроить доступ к корпоративной информации компании. Чтобы доступ был лишь с определённых IP? На оба вопроса ответ положительный. Одной из особенностей VDS сервера является то, что серверу присваивается статический IP-адрес, и на протяжении всего использования, он меняться не будет. Адрес может быть присвоен только одному серверу, так что другие пользователи, пока существует ваш сервер, не смогут им воспользоваться. То есть, и VPN настроенный на вашем VDS сервере всегда будет иметь один и тот же IP адрес.
Читать дальше →
Всего голосов 45: ↑37 и ↓8+29
Комментарии7

Практические советы по устранению утечек памяти в Go

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.6K

В этой статье я расскажу, что делать при обнаружении утечки в Go-приложении: чем могут быть вызваны утечки и с чего начать поиск источника проблемы.

Причины утечек

Для начала перечислим возможные причины утечки памяти:

1) Утечка горутин

При утечки горутины утекают также переменные, которые находятся в области ее видимости. Кроме того, стек горутины выделяется в куче

2) Бесконечная запись в глобальные переменные

Приложение может бесконечно писать в какую-нибудь глобальную мапу, в результате чего память будет утекать. Один раз я пытался найти утечку у приложения, которое использовало gorilla context. Особенность этой библиотеки в том, что при обработке http запроса она сохраняет указатель на запрос в глобальную мапу и не удаляет ключ мапы без явного указания в пользовательском коде. Начиная с Go 1.7, разработчики gorilla рекомендуют использовать http.Request.Context()

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии4

Лучшие практики для Java-приложений в Kubernetes

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров11K

В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы и для других языков. 

Однако я рассматриваю все правила в рамках характеристик Java, а также показываю решения и инструменты, доступные для приложений на базе JVM. 

Некоторые из этих рекомендаций по Kubernetes навязаны дизайном при использовании самых популярных Java-фреймворков, таких, как Spring Boot или Quarkus. Я покажу вам, как эффективно использовать их для упрощения жизни разработчиков.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии0

Книга «Black Hat Go: Программирование для хакеров и пентестеров»

Время на прочтение12 мин
Количество просмотров11K
image Привет, Хаброжители!

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

Вы начнете с базового обзора синтаксиса языка и стоящей за ним философии, после чего перейдете к изучению примеров, которые пригодятся для разработки инструментов. Вас ждет знакомство с протоколами HTTP, DNS и SMB, Далее вы перейдете к изучению различных тактик и задач, с которыми сталкиваются пентестеры, рассмотрите такие темы, как кража данных, сниффинг сетевых пакетов и разработка эксплойтов. Вы научитесь создавать динамические встраиваемые инструменты, после чего перейдете к изучению криптографии, атаке на Windows и стеганографии.

Готовы расширить арсенал инструментов безопасности? Тогда вперед!
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Настройка jwt-username-password authentication через spring-security-oauth2-resource-server

Время на прочтение9 мин
Количество просмотров15K

Добрый день!

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

Читать дальше
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

Сервисы по обработке фотографии для профиля LinkedIn

Время на прочтение7 мин
Количество просмотров8.5K

Когда кто-то просматривает ваш профиль LinkedIn, две вещи, которые сразу же бросаются в глаза — это ваша фотография профиля и ваш фон профиля.

В этой статье вы узнаете:

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

Дисклеймер: технического материала в статье нет. Она рассчитана на тех, кто хочет прокачать свой профиль в LinkedIn с целью поиска работы в России или за ее пределами.

Читать далее
Всего голосов 15: ↑6 и ↓9-3
Комментарии4

Golang-дайджест № 19 (1 – 31 июля  2022)

Время на прочтение4 мин
Количество просмотров6.7K

Свежая подборка новостей и материалов

Интересное в этом выпуске

Выпущены версии 1.18.4 и 1.17.12, выпущен GoLand 2022.2, Go To Memory, что нового в Go 1.19? 

Приятного чтения!

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Пять инструментов Site Reliability Engineering

Время на прочтение6 мин
Количество просмотров7K

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

В этой статье пойдет речь о главных инструментах Site Reliability Engineering (SRE) и о том, как они влияют на повышение надежности систем. 

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии0
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность