• Корневые и промежуточные сертификаты уполномоченных Удостоверяющих Центров России

      Как и многие другие страны, Россия для официального электронного документооборота использует x509 сертификаты, выпускаемые уполномоченными Российскими Удостоверяющими Центрами (УЦ). И в отличие от многих других стран, использует свои собственные шифры.

      Я давно хотел автоматизировать проверку подписей ответов органов власти (я много переписываюсь) и проверку «выгрузок» Роскомнадзора на подлинность (по роду общественной деятельности). Самой большой проблемой было достать промежуточные сертификаты из цепочки. Потому что существовал невнятный Excel-файл корневых УЦ на сайте Минсвязи и всё. А промежуточные надо было искать по сайтам соответствующих УЦ. Жизнь — боль.
      Читать дальше →
    • Визуализация связей процессов в Linux



        Приходилось ли вам отслеживать зависимости системных процессов, «кто чей папка», найти императора и убить его, чтобы рабы не респаунились? Можно ps'ать и grep'ать, можно lsof погонять, ведь это так увлекательно ;) Но любые связи, как мне кажется, всегда проще анализировать в визуальной форме, консольные утилиты рисуют хорошие таблички, но из них не всегда можно быстро понять, что с чем связано и в какой последовательности, а для диагностики это очень важно.
        Читать дальше →
      • Принудительное введение в системы управления конфигурациями

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


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


          Введение для отшельников, которые не слышали что такое configuration management systems


          Уже многие годы (по айтишным меркам — три поколения как) существуют программы, которые позволяют автоматизировать процесс конфигурации серверов. Все эти программы сложные, они вторгаются в святую святых администраторов и заставляют их делать "всё не так, как раньше". Их изучение и интернализация (признание, что "так надо и так правильно") — абсолютный must have в карьере любого системного администратора.


          Главная боль любой системы управления конфигурациями


          Главная боль состоит в том, что система управления конфигурациями ломает привычную автоматику пальцев. Раньше вы могли поднять веб-сервер за 2 минуты почти не глядя на экран. Теперь вам предлагают потратить на абсолютно те же самые действия минут 15-20 (если вы хорошо знаете систему управления конфигурациями) или даже несколько дней (!!!!!), если вы её изучаете.


          Это преступление против личной эффективности. Уменьшить её в десять (0xA) раз — и это они называют прогрессом?

          Читать дальше →
        • Начинающим Java программистам

            Программирую на Java вот уже 7 лет. Но на работе часто приходится обучать новое поколение. В связи с этим и решил сделать некоторую шпаргалку, которая, надеюсь, пригодится и для хабрчан. Если кто-то может помочь дополнить чем-то информацию из этой статьи, то пишите! Итак:

            Основные ресурсы для начального обучения


            • www.javable.com — сайт со статьями и tutorial'ом по Java. Все в основном на русском.
            • www.exampledepot.com — очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
            • java.sun.com — без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial'ов на все возможные темы.

            Читать дальше →
            • +106
            • 1060k
            • 58
          • Java и время: часть первая

            • Tutorial
            Восемь лет назад я принимал участие в проектировании и разработке сервиса, который был должен обслуживать запросы пользователей со всех уголков земного шара и координировать их действия. Работая над проектом я понял, что очень часто многие важные аспекты работы со временем просто игнорируются. Иногда это действительно не очень критично: если сервис локален и им пользуются только на определенной территории, либо пользователи естественным образом разделены на почти не взаимодействующие между собой географические кластеры. Однако же, если сервис объединяет пользователей по всему миру, то без четкого понимания принципов работы со временем уже не обойтись. Представим сервис, в котором общие события (совещания например) начинаются в какое-то строго определенное время, а пользователи рассчитывают на это. Какое время им показывать, в какой момент их беспокоить уведомлениями, что такое день рождения и когда можно поздравить человека — в статье я попробую это осмыслить.



            Статья не претендует на глубину и/или академичность. Это попытка систематизировать опыт и обратить внимание разработчиков на не очень очевидные аспекты.

            Читать дальше →
          • Open-source реализации отечественных криптоГОСТов

              На выходных решил поискать open-source реализации отечественных криптографических стандартов. Прежде всего интересовали новые: хэш-функция Стрибог (ГОСТ Р 34.11-2012), Кузнечик (ГОСТ Р 34.12-2015) и ЭЦП (ГОСТ Р 34.10-2012 или 2001 (без 512-бит) ). Старый ГОСТ 28147-89 специально не искал, поскольку найти его реализацию никаких проблем нет уже давно.
              Итак, давайте посмотрим, что же получилось. Сразу предупреждаю, что корректность реализаций не проверял.
              Читать дальше →
            • Подборка бесплатных инструментов для разработчиков

              • Перевод
              Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

              Читать дальше →
            • Теория звука. Что нужно знать о звуке, чтобы с ним работать. Опыт Яндекс.Музыки

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

                Для работы над Яндекс.Музыкой нам всегда важно помнить о разных тонкостях, которые таит в себе звук. Что такое громкость, как она меняется и от чего зависит? Как работают звуковые фильтры? Какие бывают шумы? Как меняется звук? Как люди его воспринимают.



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

                Поводом для этого поста можете считать то, что мы добавили в приложения Яндекс.Музыки возможность слушать треки в высоком качестве (320kbps). А можете не считать. Итак.
                Читать дальше →
              • Почему нельзя пускать программистов на сервера, или Почему девопсы еще не вымерли, хотя об этом много говорили



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

                  Сегодня у нас необычный материал. Мы не будем публиковать туториал или рассматривать новые фреймворки, а просто дадим слово коллеге, которому есть, что сказать.

                  Мнение автора может не отражать позицию компании и других коллег.

                  Знакомьтесь — Александр Ефимов, Configuration manager/DevOps

                  Есть у меня знакомый, который, будучи первоклассным сисадмином, мечтает стать программистом. По его словам, хочет творить, а не использовать уже существующий… не очень хороший софт. В чем-то я его понимаю: «чистое» творчество — безусловно, круто. Но давайте разберемся, что и как происходит на самом деле.
                  Читать дальше →
                • Возможности PostgreSQL, которых нет в MySQL, и наоборот



                  Многие боятся переходить с «мускуля» на «посгрес» из-за того, что лишь смутно понимают, что это даст. Некоторых останавливает мысль, что наверно Postgres — это слишком сложная база и требует обучения. А также, что возможно чего-то придется лишиться в связи с переходом. Попробую немного прояснить ситуацию.
                  Читать дальше →
                • Достаточно Git-а, чтобы быть (менее) опасным

                  imageТы просто-напросто ненавидишь Git? Ты абсолютно счастлив с Mercurial (или, фу, с Subversion), но раз в месяц тебе приходится отважно сталкиваться с Git, потому что каждый, даже его чертова собака, теперь использует GitHub? Тебя терзают смутные подозрения, что половина всех команд Git на самом деле удалят всю твою работу навсегда, но ты не знаешь какие именно и не хочешь проводить три недели, углубляясь в документацию?

                  Хорошие новости! Я написал тебе этот изумительный Интернет-пост. Я надеюсь, что смогу размазать достаточно Git-а по твоему лицу, чтобы понизить вероятность сделать что-то непоправимое, а так же уменьшить твой страх что-то сломать. Этого должно быть также достаточно, чтобы сделать документацию Git немного более понятной; она крайне тщательно и глубоко проработана и очень глупо, если ты все еще не прочитал половину.

                  Я постараюсь излагать коротко, но также, чтобы это было потенциально полезно тем людям, кто вообще никогда не сталкивался с контролем версий, поэтому повсюду будет разбросан 101 совет. Не бойся! Я не думаю, что пользователи Mercurial понятия не имеют, что такое патч.
                  Но подожди! Там еще...
                • Обзор платежных агрегаторов для приема платежей

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

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

                    Чем же платежные агрегаторы отличаются друг от друга, и на что стоит обратить внимание?


                    Каждую компанию было решено рассмотреть по десяти параметрам. Ниже приведено детальное описание параметра и почему на это стоит обратить внимание.
                    Читать дальше →
                  • Тинькофф банк скомпрометировал выписки по счетам клиентов?

                    На днях клиенты Тинькофф банка обнаружили занимательный факт – выписки с информацией о движении денег по счетам клентов банк разместил на своем сайте по прямой ссылке. Это оплошность специалистов по информационной безопасности и нарушение банковской тайны или очередной PR-ход известного своими выходками Олега Тинькова?
                    Читать дальше →
                  • Технокнига, часть 1: литература по веб-технологиям, алгоритмам и структурам данных, углубленному программированию на С++



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

                      Первый семестр призван «выровнять» знания студентов. Он содержит такие дисциплины, как алгоритмы и структуры данных, программирование на C++, а также обзорный курс по веб-технологиям. С книг по этим предметам и начнется обзор. Большая часть представленных книг относится к нестареющей «классике», являющейся собранием основополагающих концепций.
                      Читать дальше →
                    • Особенности резолвера DNS в Windows 10 и DNS Leak

                        image

                        TL;DR: DNS-резолвер в Windows 10 отправляет запросы на все известные системе адреса DNS-серверов параллельно, привязывая запрос к интерфейсу, и использует тот ответ, который пришел быстрее. В случае, если вы используете DNS-сервер из локального сегмента, такое поведение позволяет вашему провайдеру или злоумышленнику с Wi-Fi-точкой подменять записи DNS, даже если вы используете VPN.

                        Современные версии Windows добавляют головные боли активным пользователям VPN. DNS-резолвер до Windows 7 включительно имел предсказуемое поведение, совершая запросы к DNS-серверам в порядке очереди и приоритета DNS-серверов, в общем-то, как и все остальные ОС. Это создавало так называемый DNS Leak (утечка DNS-запроса через внешний интерфейс при подключенном VPN) только в том случае, если DNS-сервер внутри VPN-туннеля не ответил вовремя, или ответил ошибкой, и, в целом, не являлось такой уж вопиющей проблемой.
                        Читать дальше →
                      • Отлаживаем правила RewriteRule, или немного об интимной жизни mod_rewrite

                          У меня RewriteEngine всегда был довольно стрессовой темой. Только вот недавно я вдруг обнаружил, что все как-то улеглось и стало более или менее понятно. Поскольку я совершенно обычный человек, я уверен, что ситуация ошибки конфигурации веб-сервера «доставала» не одного лишь меня, и я спешу поделиться своим опытом.

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

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

                          Читать дальше →
                        • Видео докладов с Zabbix Moscow Meetup

                            Недавно проводили в офисе Zabbix Meetup, который из-за количества участников (приехали ребята из Ярославля, Новосибирска, Уфы, Владивостока, Краснодара, Воронежа, Брянска, СПб и других городов) перерос в конференцию на весь день. И сегодня хотим поделиться с вами видео докладов.

                            1. «Zabbix: прошлое, настоящее и будущее», Алексей alexvl Владышев, Zabbix.





                            2. «Zabbix в Badoo или о чем не пишут в мануале», Илья ableev Аблеев, Badoo.

                            NEW: Наш Screens Controller для Zabbix.
                            Читать дальше →
                            • +18
                            • 19,4k
                            • 2
                          • PostgreSQL: Приемы на продакшене

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

                              image
                              Читать дальше →
                            • PostgreSQL 9.3 + Pgpool-II

                              Решил поделиться с вами опытом настройки кластера PostgreSQL 9.3, состоящего из двух нод, управлением которого занимается pgpool-II, без использования Stream Replication (WAL). Надеюсь, кому-нибудь будет интересно.

                              Схема:

                              image

                              Как Вы понимаете, это будут два отдельно стоящих сервера, которыми будет управлять pgpool-II.

                              Конфигурация нод с PostgreSQL:
                              Оба сервера идентичны по своим аппаратным составляющим.
                              • 4vCPU;
                              • 16 Гб памяти;
                              • CentOS 6.5;

                              Диски:
                              • 50 Гб — система;
                              • 100 Гб — pg_xlog
                              • 500 Гб — каталог с данными


                              Пример,
                              Filesystem      Size  Used Avail Use% Mounted on
                              /dev/sda3        48G  7.4G   38G  17% /
                              tmpfs           7.8G     0  7.8G   0% /dev/shm
                              /dev/sda1       194M   28M  157M  15% /boot
                              /dev/sdb1        99G  4.9G   89G   6% /var/lib/pgsql/9.3/data/pg_xlog
                              /dev/sdc1       493G  234G  234G  50% /var/lib/pgsql/9.3/my_data
                              


                              Конфигурация нод с pgpool-II:
                              • 4vCPU;
                              • 8 Гб памяти;
                              • CentOS 6.5;

                              Диски:
                              • 50 Гб — система;


                              Про установку PostgreSQL в детали вдаваться не буду, так как она стандартная.

                              Настройка pgpool-II.
                              За основу настройки pgpool-II, взял инструкцию с официального сайта: www.pgpool.net/pgpool-web/contrib_docs/simple_sr_setting2_3.3/index.html

                              Хотел бы обратить внимание только самые важные моменты:
                              Читать дальше →
                              • +8
                              • 22,6k
                              • 9
                            • «Под капотом» индексов Postgres

                              • Перевод

                              Капитан Немо у штурвала «Наутилуса»

                              Индексы — один из самых мощных инструментов в реляционных базах данных. Мы используем их, когда нужно быстро найти какие-то значения, когда объединяем базы данных, когда нужно ускорить работу SQL-операторов и т.д. Но что представляют собой индексы? И как они помогают ускорять поиск по БД? Для ответа на эти вопросы я изучил исходный код PostgreSQL, отследив, как происходит поиск индекса для простого строкового значения. Я ожидал найти сложные алгоритмы и эффективные структуры данных. И нашёл.

                              Здесь я расскажу о том, как устроены индексы и как они работают. Однако я не ожидал, что в их основе лежит информатика. В понимании подноготной индексов также помогли комментарии в коде, объясняющие не только как работает Postgres, но и почему он так работает.
                              Читать дальше →