Как стать автором
Обновить
4
0

Пользователь

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

Функциональные опции в Go

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

Сегодня я хочу поделиться своими знаниями о паттерне, который может значительно упростить работу, если ты пишешь на Go. Речь пойдет о функциональных опциях. Поверь, как только ты разберешься c этим, твой код станет немного гибче и проще.

Читать далее
Всего голосов 18: ↑17 и ↓1+17
Комментарии43

ТОП-6 российских онлайн-досок. Чем заменить Miro

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

Лучшие онлайн-сервисы для совместной работы команд, из которых парочка бесплатных + одно мини-приложение в Telegram!

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

Работа с DEB-пакетами

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

Данные инструкции написаны для серии статей под названием «Проект юного DevOps»:

Сборка Deb-пакета

Пересборка Deb-пакета

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

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

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

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@.

Читать далее
Всего голосов 52: ↑49 и ↓3+55
Комментарии4

Регулярные выражения (regexp) — основы

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

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее
Всего голосов 50: ↑42 и ↓8+43
Комментарии76

Тиннитус (шум в ушах) для айтишников, геймеров, и не только

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

ВНИМАНИЕ! Если у вас нет шума в ушах (тиннитуса) и/или нейросенсорной тугоухости, но есть особенности психики в части психосоматики или подобного – покиньте данный пост не читая.

Самые важные победы в мире – победы над собой

Всем привет. Меня зовут Паша Герасимов, мне 38, я – инженер в ИТ, геймер, и у меня диагноз НСТ (нейросенсорная тугоухость), а также субъективный шум в ухе (тиннитус) и гидропс правого лабиринта. По ощущениям, это комбо – шум/гул/свист в ухе, снижение слуха, чувство заложенности за перепонкой, и гиперакузия (повышенная чувствительность к некоторым звукам). Для тех, кто не в теме – представьте, что у вас ухо заложено ваткой, а внутри уха – звук неработающего канала ТВ (как видео пример, или mp3). И так – регулярно, месяцами, без возможности исправления.  

До 37 лет я практически не болел и не ходил по поликлиникам, это повлияло на всю историю с тиннитусом, поэтому для многих очевидные вещи, я понял на своей шкуре. 

Читать далее
Всего голосов 80: ↑78 и ↓2+91
Комментарии155

Интегрируем Clickhouse в Zabbix

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

В прошлом материале мы рассказали, с какой проблемой столкнулись, и проанализировали четыре СУБД в поиске рабочего решения. Мы оценили преимущества и недостатки каждого отобранного варианта и остановились на ClickHouse. Несмотря на то, что готовой интеграции этой БД с Zabbix не существует, CH отлично подходил как решение под наши инженерные задачи.

БД в Zabbix

Прежде чем мы перейдем к рассказу о реализации, расскажем о специфике работы БД в Zabbix. Вся ее логика вынесена в отдельную библиотеку — zbxhistory. Она используется сервером и прокси для сохранения данных мониторинга. В классе history описывается интерфейс, который имплементируется каждой реализацией подключения к хранилищу данных.

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

Все что вам нужно знать о таймаутах

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

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

Под катом вы узнаете как установить оптимальные значение connection и request timeout, стоит ли повторять запрос при ошибке или лучше избегать этого.

В конце статьи есть небольшая шпаргалка и куча полезных ссылок. Приятного чтения.

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

Разгоняем бэкап. Лекция Яндекса

Время на прочтение9 мин
Количество просмотров18K
Несколько ближайших лекций будут по мотивам первого Я.Субботника по базам данных, который состоялся весной. Сначала на Я.Субботнике выступил разработчик Андрей Бородин. Он рассказал о WAL-G — простом и эффективном инструменте для резервного копирования PostgreSQL в облако, а также об алгоритмах и технологиях, которые позволяют WAL-G создавать бэкапы быстрее. Главная особенность WAL-G — дельта-бэкапы. Из лекции вы узнаете об их реализации и о том, как поддержка этой технологии развивается в PostgreSQL.


— Привет! Я разработчик в Яндексе из Екатеринбурга. К технологиям быстрого бэкапа. Бэкапом мы занимаемся довольно давно, были доклады Владимира Бородина и Евгения Дюкова о том, как мы исследуем и что разрабатываем, чтобы хранить данные безопасно, надежно, удобно и эффективно. Эта серия посвящена последним наработкам в указанной области.

Поговорим про бэкапы в PostgreSQL в принципе. Стандартная утилита для переноса данных — pg_dump — определяется как консольная утилита, создающая файл с логическим представлением ваших данных.
Всего голосов 38: ↑37 и ↓1+36
Комментарии0

Golang fyne Куда нажать? :-(

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

fyne - кросс-платформенная библиотека для Golang, но ее кросс-компиляция не очевидная вещь, в данной статье Гайд, как же все-таки собрать и распространить свое первое приложение

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

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Время на прочтение5 мин
Количество просмотров173K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

Читать дальше →
Всего голосов 385: ↑339 и ↓46+293
Комментарии186

Terraform за 15 дней (AWS/Yandex cloud). День 1

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

Terraform за 15 дней (AWS/Yandex). День 1

Мы от простого к сложному, поднимем небольшую инфраструктуру на aws и Яндекс (актуальность последнего я думаю объяснять не нужно). Так что по итогу вы сможете сказать: “Я изучал terraform от простого к сложному”.

Я постараюсь добавить все необходимые ссылки на документации и доп. источники, так что вы сможете дополнить необходимые знания, но данный курс (если это можно так назвать) скорее рассчитан на тех, кто в общем знаком с облачными технологиями. Это не пособие по terraform. Цель - помочь новичкам в данном вопросе начать изучать IaC и облака в целом. Некий quick start в terraform.

Изучить terraform
Всего голосов 15: ↑9 и ↓6+6
Комментарии4

Асинхронный python без головной боли (часть 1)

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

Почему так сложно понять asyncio?

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

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку
Всего голосов 135: ↑135 и ↓0+135
Комментарии57

Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма

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

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

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

Что читать Golang-разработчику. Семь главных книг: от Донована и Кернигана до МакДауэлл

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

Спрос на бэкенд-разработчиков — а Go неотделим от бэкенд-программирования — стабильно растет. У самого же Golang немало плюсов: простой, строгий, статически типизированный, он обладает развитой стандартной библиотекой и славится поддержкой параллельного и асинхронного программирования. При этом в Golang нет классов и нет поддержки наследования, что значительно повышает удобство поддержки кода. Благодаря этим и другим преимуществам Go в последние годы сохраняет статус популярного и перспективного языка.

В МойОфис мы широко используем Go в качестве основного языка для разработки корпоративной почты нового поколения Mailion. При этом разрабатываем на нём не только микросервисы, но и собственное хранилище с поддержкой дедупликации (про устройство Mailion читайте здесь). В связи с этим мы постоянно следим за книжными новинками и актуальными темами современной бэкенд-разработки. Специальной литературы по теме Golang существует немало, однако с помощью наших разработчиков мы выбрали самые важные, профессионально полезные и увлекательно написанные издания.

Делимся рекомендациями книг под катом!

Открыть подборку книг
Всего голосов 28: ↑22 и ↓6+16
Комментарии7

Собеседование Golang разработчика (теоретические вопросы), Часть II. Что там с конкурентностью?

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

Что спрашивают на собеседовании Golang разработчика? Асинхронщина? Контексты? Вторая часть статьи с вопросами и ответами, собранными на собеседованиях.

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

Собеседование Golang разработчика (теоретические вопросы), Часть I

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

Как сейчас проходят собеседования на golang разработчика? Что спрашивают?

Читать далее
Всего голосов 43: ↑42 и ↓1+45
Комментарии23

Российские системы для управления проектами: что подходит для десятков проектов

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

Управление проектами, особенно масштабными — нелегкая задача. Требуется учитывать множество факторов как внешних, так и внутренних, особенно когда масштаб проектов увеличивается, растет объем информации, а в компании приходит все больше сотрудников, чьей работой нужно управлять. Все усложняется, если таких проектов не один, а десятки или сотни. Без детального планирования сейчас никуда: по данным команды авторитетного издания из США «Как открыть бизнес» детальное планирование дает возможность развиваться компаниям на 30% быстрее, чем обычно. Такие выводы сделаны на основе анализа работы свыше 11 тысяч разных компаний.

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

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

Шпаргалка по управлению сервисами CentOS 7 с systemd

Время на прочтение7 мин
Количество просмотров340K
Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.

В этой статье мы рассмотрим процесс управления сервисами в systemd для пользователя CentOS 7. Эти знания будут полезны и в других дистрибутивах, ведь systemd уже давно используется в Fedora и планируется в Ubuntu 14.10 и Debian 8. Хорошо это или нет — оставим за кадром.

CentOS 7 Systemd Infobox

В процессе чтения статьи вы можете попробовать systemd на классических VPS и облачных VPS от Infobox. Мы стремимся своевременно добавлять поддержку современных ОС, чтобы вы могли использовать последние технологии для более эффективной работы. Сама идея написания статьи родилась после очередного вопроса пользователей об использовании сервисов в CentOS 7.
Читать дальше →
Всего голосов 66: ↑61 и ↓5+56
Комментарии10

Лёгкая настройка Asterisk + Fail2Ban

Время на прочтение1 мин
Количество просмотров38K
В сентябре 2013 я опубликовал крайне популярную статью с таким-же названием. Однако с тех пор всё радикально поменялось со стороны fail2ban — добавлена поддержка asterisk «из коробки», а также с версии 0.9 радикально изменился формат конфигурационных файлов. Поэтому я публикую новую статью на эту тему, так как действия по настройке теперь тоже радикально иные.

До момента появления лога security в Asterisk 10-й версии fail2ban не мог корректно защищать asterisk от популярного вида атак — подбора sip пароля к экстеншенам, т.к. в обычных логах asterisk ip-адрес атакующего не отображался.
С появлением лога security эта проблема решена.

Если у вас Asterisk 10 и новее, его успешно можно использовать на пару с fail2ban. Настройка довольно простая.

Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии7
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность