Pull to refresh
3
0
Andrey Dudin @DuD

Infrastructure & DevOps

Send message

OpenDKIM + Postfix = просто

Reading time4 min
Views130K


В конце 2011 года разработчики проекта dkim-milter прекратили его поддержку и разработку. К счастью, на замену проекта dkim-milter пришел OpenDKIM, с помощью которого добавить DKIM-подпись в письма так же просто.

tl;dr: в наше время без DKIM-подписей ну никак нельзя
DKIM-подпись — это цифровая подпись, которая добавляется к заголовкам письма сервером отправителя, по которой сервер получателя может удостовериться, что отправитель письма соответствует полю From в заголовках письма. Если сервер получателя проверяет эту подпись, то по результатам проверки сервер может принять решение о том, как поступать с письмом: принять, отправлять в папку «Спам», отправить на дополнительную проверку или вовсе отказаться от приёма. Подписи DKIM проверяют и используют сами все ведущие почтовые службы, включая Яндекс и Mail.ru. Последняя открыто требует чтобы письма были подписаны с помощью DKIM.


Инструкция по настройке связки Postfix и OpenDKIM

Мониторинг сетевого стека linux

Reading time5 min
Views51K

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


Я расскажу, как достаточно простые метрики TCP/IP стека могут помочь разобраться с различными проблемами в распределенных системах.

Читать дальше →

Как достичь рейтинга А+ для SSL-сертификата на вашем сайте, и другие аспекты безопасности хостинга

Reading time10 min
Views22K


В последние годы хостинг превратился в commodity — полноценный продукт, привлекательность которого во многом определяется сопутствующими услугами. А поскольку особое значение сегодня имеет информационная безопасность веб-сайтов, то одним из важнейших аспектов хостинга являются SSL-сертификаты. Вся электронная коммерция так или иначе проходит через хостинг, поэтому необходимо понимать, насколько безопасно, правильно и удобно выполняются все бизнес-операции. Подробнее об этом рассказал спикер компании Rusonyx на партнёрской конференции «1С-Битрикс».
Читать дальше →

Необычные jQuery и CSS селекторы

Reading time6 min
Views22K
Селекторы имеют очень важное значение. Большинство JQuery методов требуют выбора элементов для использования. К примеру, перед тем как прикрепить событие click к кнопке, нужно выбрать саму кнопку.

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

Давайте перейдем к списку!

Читать дальше →

Введение в GitLab CI

Reading time6 min
Views255K

Публикую перевод моей статьи из блога ГитЛаба про то как начать использовать CI. Остальные переводы гитлабовских постов можно найти в блоге компании Softmart.




Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.


Представьте, что вы работаете над проектом, в котором вся кодовая база состоит из двух текстовых файлов. Более того, очень важно, чтобы при конкатенации этих файлов в результате всегда получалась фраза "Hello world." Если это условие не выполняется, вся команда лишается месячной зарплаты. Да, все настолько серьезно.


Hello wolrd


Читать дальше →

Алексей Рагозин о диагностических интерфейсах JVM на jug.msk.ru

Reading time2 min
Views4.6K
После перерыва на летние каникулы возобновились встречи московского сообщества Java-разработчиков jug.msk.ru. 30 августа 2016 года в офисе компании КРОК была возможность послушать доклад Алексея Рагозина «Диагностические интерфейсы JVM или как сделать профайлер своими руками». Далее — подробности встречи.


Читать дальше →

Как собрать простейшую Java программу с помощью Maven

Reading time6 min
Views187K

Статья написана для тех, кто умеет писать простейшие программы на java, но не умеет их собирать. Этим людям уже известно, что такое классы, что такое пакеты и зачем нужен public static main(String[] argv), но код без среды разработки они не запускали, да и не понимают кому и зачем это вообще может понадобиться.


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


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


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

Читать дальше →

Тестирование RESTful API на NodeJS с Mocha и Chai

Reading time13 min
Views85K


Перевод руководства Samuele Zaza. Текст оригинальной статьи можно найти здесь.


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


А что дальше? Мы должны быть уверены, что наше приложение ведет себя так, как мы того ожидаем. Один из самых распространенных способов достичь этого — тесты. Тестирование — это безумно полезная вещь, когда мы добавляем новую фичу в приложение: наличие уже установленного и настроенного тестового окружения, которое может быть запущено одной командой, помогает понять, в каком месте новая фига породит новые баги.

Читать дальше →

Использование GPIO из Python на Raspberry Pi

Reading time2 min
Views119K
Делюсь своим опытом, полученным при изучении задачи вынесенной в заголовок. В статье рассматриваются два варианта работы, которые можно использовать в Python-программах, обращающихся к портами GPIO Raspberry Pi.

Порты GPIO Raspberry Pi выглядят следующим образом:

image

Читать дальше →

Основные принципы настройки Garbage Collection с нуля

Reading time7 min
Views50K
В данной статье я бы не хотел заострять внимание на принципе работы сборщика мусора — об этом прекрасно и наглядно описано здесь: habrahabr.ru/post/112676. Хочется больше перейти к практическим основам и количественным характеристикам по настройке Garbage Collection в JVM — и попытаться понять насколько это может быть эффективным.

Количественные характеристики оценки эффективности GC


Рассмотрим следующие показатели:

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


Как правило, перечисленные характеристики являются компромиссными и улучшение одной из них ведёт к затратам по остальным. Для большинства приложений важны все три характеристики, но зачастую одна или две имеют большее значение для приложения — это и будет отправной точкой в настройке.
Читать дальше →

Домашний сервер: медиацентр

Reading time3 min
Views37K
Т.к. на домашнем сервере хранится файловый архив (видео, музыка, фотографии), захотелось
реализовать медиацентр для просмотра содержимого с помощью телевизора/монитора прямо с
сервера.
Читать дальше →

Программа для быстрого теста загрузочных дисков

Reading time1 min
Views23K
Довольно много людей качает или создает загрузочные диски в формате образов CD/DVD/USB/FDD и есть необходимость быстро проверить их работоспособность перед использованием в деле. Для этого написана данная программа, со сути являющаяся надстройкой над виртуальной машиной QEMU.


Читать дальше →

Exim: как скрыть связь одного сервера и несколкьких доменов

Reading time2 min
Views9.4K
Заказчики попросили меня добавить на их почтовый сервер Exim еще доменов, но при условии, чтобы не была обнаружена связь их основного домена и каждого следующего доменов.

Естественно обратную запись в ДНС не изменить для каждого домена персонально. Я нашел единственный путь потребовать от провайдера дополнительную сеточку адресов. (Ай-яй-яй! Как плохо! Знаю, в такое тяжелое время такое разгильдяйство!). Но провайдер, как оказалось, с легкостью добавил еще сеть, без проблем.

Адреса получены, можно приступать.

Читать дальше →

Каркас для web-приложений, построенный на CodeIgniter

Reading time9 min
Views36K
image
Наверняка, многие веб-программисты изучали и, может быть, даже использовали такой замечательный фреймворк как CodeIgniter. Мой выбор пал на него ввиду того, что у него самый низкий порог вхождения, он наиболее прост в изучении, хорошая документация, быстрый и т.д. и т.п. Для простых проектов самое «оно», чтоб попробовать свои силы именно как разработчик. Само собой, для более серьезных проектов лучше использовать более функциональные и навороченные фреймворки.

Далее буду описывать, как я «апгрейдил» CodeIgniter, чтобы использовать этот каркас для разных проектов, т.к. базовый его функционал и примеры из документации, мягко говоря, очень простые, а в жизни всё гораздо сложнее. Итак, начнем-с.
Читать дальше →

Information

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