• 50 оттенков Celery

      Вам сюда, если хотите знать, как приручить широкоизвестный в кругах Python-разработчиков фреймворк под названием Сelery. И даже, если в вашем проекте Celery уверенно выполняет базовые команды, то финтех опыт может открыть вам неизведанные стороны. Потому что финтех — это всегда Big Data, а с ней и необходимость фоновых задач, пакетной обработки, асинхронного API и т.д.


      Прелесть рассказа Олега Чуркина про Celery на Moscow Python Conf ++ помимо подробных инструкций, как настроить Celery под нагрузку и как его мониторить, в том, что можно позаимствовать полезные наработки.


      О спикере и проекте: Олег Чуркин (Bahusss) 8 лет разрабатывает Python-проекты разной сложности, работал в многих известных компаниях: Яндексе, Рамблере, РБК, Лаборатории Касперского. Сейчас техлид в финтех-старапе StatusMoney.
      Читать дальше →
      • +31
      • 5,2k
      • 7
    • Руководство и шпаргалка по Wireshark

      • Перевод
      • Tutorial
      Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:

      Устранение неполадок сетевого подключения


      • Визуальное отображение потери пакетов
      • Анализ ретрансляции TCP
      • График по пакетам с большой задержкой ответа

      Исследование сессий прикладного уровня (даже при шифровании с помощью SSL/TLS, см. ниже)


      • Полный просмотр HTTP-сессий, включая все заголовки и данные для запросов и ответов
      • Просмотр сеансов Telnet, просмотр паролей, введённых команд и ответов
      • Просмотр трафика SMTP и POP3, чтение писем
      Читать дальше →
      • +26
      • 16,2k
      • 4
    • Курс MIT «Безопасность компьютерных систем». Лекция 22: «Информационная безопасность MIT», часть 3

      • Перевод
      • Tutorial

      Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


      Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

      Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
      Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
      Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
      Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
      Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
      Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
      Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
      Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
      Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
      Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
      Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
      Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
      Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
      Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
      Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
      Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
      Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
      Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
      Лекция 19: «Анонимные сети» Часть 1 / Часть 2 / Часть 3
      Лекция 20: «Безопасность мобильных телефонов» Часть 1 / Часть 2 / Часть 3
      Лекция 21: «Отслеживание данных» Часть 1 / Часть 2 / Часть 3
      Читать дальше →
    • Комплект увольнения

        • Знание ООП и структуры данных;
        • опыт разработки на Java для Android.;
        • знание Android API, понимание архитектуры Android;
        • знание основ HTTP, XML, JSON;
        • опыт работы с системами контроля версий Git;
        • опыт работы с Android Studio, Gradle;
        • опыт работы с SQL базами данных;
        • знакомство с принципами Material Design;

        Узнали? Конечно, узнали. Это — одно из стандартных резюме программиста.

        Лично мне такое резюме напоминает одну песню, а точнее одну строку этой песни: «Жигули! Едет и уже хорошо!».

        Еще напоминает рекламу тех же Жигулей, где наличие ABS, датчиков дождя и света и т.д. выдается за конкурентное преимущество. Ну и лозунг знаменитый: «Таким и должен быть автомобиль!».

        А программист таким и должен быть? Если хочет быть, как жигули – массовым, дешевым и «как бы и не машиной программистом», то да.

        Но мы не такие, поэтому будем формировать и формулировать свое конкурентное преимущество – комплект увольнения.



        Комплект увольнения – то, что остается с вами, когда вы меняете место работы. Как пел Юрий Шевчук, «Это то, что останется после меня. Это то, что возьму я с собой».
        Читать дальше →
      • Коротко о работе с RabbitMQ из Python

          КДПВ


          Так повелось, что в процессе работы в МегаФоне, приходится сталкиваться с однотипными задачами при работе с RabbitMQ. Закономерно возникает вопрос: «Как упростить и автоматизировать выполнение таких задач?»


          Первое решение, которое приходит в голову, использовать интерфейс HTTP, и, безусловно, из коробки RabbitMQ обладает хорошим веб-интерфейсом и HTTP API. Тем не менее, использование HTTP API не всегда удобно, а иногда и вообще невозможно (допустим у вас недостаточно прав доступа, а опубликовать сообщение ну очень хочется) в такие моменты возникает необходимость работы именно по протоколу AMQP


          Не найдя подходящих мне готовых решений на просторах сети, было решено написать небольшое приложение для работы с RabbitMQ по протоколу AMQP

          Читать дальше →
        • Интернет убыточных вещей

          • Перевод
          Зовите детишек! Сейчас дядя Андрей расскажет рождественскую страшилку об NTP (Network Time Protocol).

          Почти два года назад, в понедельник 16 января 2017 года, в нашу систему баг-репортов BitFolk поступил интересный тикет от постороннего лица. Отправитель представился как ведущий инженер-программист компании NetThings UK Ltd.

          Тема: запрос NTP на IP 85.119.80.232

          Привет,

          Это может показаться странным, но мне нужно настроить сервер NTP по IP-адресу 85.119.80.232.

          Что такого особенного в адресе 85.119.80.232? Это IP-адрес одного из NTP-серверов для обслуживания наших клиентов. За несколько недель до этого тикета сервер также был частью проекта NTP Pool.

          Здесь важное слово «был». В конце декабря 2016 года я вывел NTP-серверы BitFolk из общественного пула и заблокировал их для посторонних.
          Читать дальше →
        • Brute-force атаки с использованием Kali Linux

          • Tutorial


          Brute-force (атака полным перебором) – метод решения математических задач, сложность которого зависит от количества всех возможных решений. Сам же термин brute-force обычно используется в контексте хакерских атак, когда злоумышленник пытается подобрать логин/пароль к какой-либо учетной записи или сервису.

          Рассмотрим инструменты, которые можно использовать для выполнения brute-force атак на SSH и WEB-сервисы, доступные в Kali Linux (Patator, Medusa, Hydra, Metasploit), а также BurpSuite.
          Читать дальше →
          • +18
          • 7,2k
          • 3
        • Новогодний датасет 2018: открытая семантика русского языка

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


            Читать дальше →
          • Хабраутилита для сбора хабрастатистики в хабраблогах

              Новый год — время подводить итоги. И если вы ведёте блог на хабре, или вам интересно посмотреть статистику по чьему-нибудь чужому блогу — то вам может пригодиться моя опенсорсная утилитка.


              Читать дальше →
              • +35
              • 2,4k
              • 3
            • Годные туториалы на YouTube

              • Перевод
              На YouTube много бесплатных обучающих и курсов и туториалов.

              image

              Я веду freeCodeCamp, YouTube канал без рекламы. У нас есть полные видеокурсы и учебные пособия по многим популярным языкам программирования и фреймворкам (включая JavaScript, Python, Java, Ruby, C, C ++, Angular и не только).

              Есть и другие YouTube каналы с бесплатными уроками по программированию, которые ничуть не хуже, а иногда даже лучше, чем платные.

              В этой статье я перечисляю десять YouTube каналов, которые можно посмотреть, чтоб прокачаться в программировании. Расположение каналов — случайное.

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

              Есть много отличных каналов, для которых у меня не хватило места в этом списке. Поделитесь своими находками в комментах.
              Читать дальше →
            • Я порчу разрабам жизни своими код ревью и больше так не хочу



                Однажды в моей команде был настолько слабый парень, что его собирались уволить (уволить разработчика!). Каждый мой коммент на ревью к его коду был гвоздем в крышку гроба. Я почти слышал стук молотка, нажимая «submit review». Он был приятным человеком, я даже переживал за него, но это не мешало мне разносить его старания в щепки. Мое право критиковать его работу казалось очевидным и неотъемлемым. Все просто — я сильнее, я прав. Никто же не хочет сказать, что плохой код — это хорошо, а? Его уволили, предварительно лишая стандартной премии в течение нескольких месяцев.

                Я говорил себе: «Но ведь не делать же мне всю работу за него!? Он занимал место более талантливого разработчика. Я все правильно сделал». Но почему-то на душе скребли кошки. И когда мне пришел на ревью очередной pull request, что-то очень сильно поменялось.
                Читать дальше →
              • 7 лет образовательным проектам Mail.Ru Group: делимся опытом по основным направлениям



                  Среди проектов отдела образования Mail.Ru Group — учебные программы в 7 ведущих технических вузах, включающие 200 IT-дисциплин, более 17 онлайн-курсов, 9 IT-чемпионатов и около 1000 обучающих видео на YouTube-канале Технострим.

                  Рассказываем о направлениях и делимся открытыми материалами: записями лекций, митапов и мастер-классов, разборами задач чемпионатов и подборкой онлайн-курсов для новичков и профи.
                  Читать дальше →
                  • +56
                  • 5,5k
                  • 9
                • Любопытные извращения из мира ИТ

                  • Перевод
                  Сайт The Daily WTF уже 14 лет собирает курьёзные, дикие и/или печальные истории из мира ИТ. Я перевёл несколько рассказов, показавшихся мне интересными. Все имена и названия компаний изменены.

                  На работу за 3 000 миль


                  Правдивая история из личного опыта нашего автора Snoofle. [Оригинал]

                  Много десятков лет назад оборонный подрядчик DefCon Inc работал на армию США и пытался получить новый контракт на создание какого-то приложения, применяемого в бою. Компания хотела продемонстрировать в своём предложении, что у неё хватит персонала для выполнения этого проекта. Поэтому она наняла более тысячи разнообразных программистов, руководителей проектов, менеджеров и так далее. Военные, изучавшие различные коммерческие предложения, увидели кучу новых сотрудников, абсолютно незнакомых с необходимыми процессами, процедурами и требованиями, поэтому передали контракт другой фирме. Подрядчик, со своей стороны, уволил всю эту тысячу человек.

                  Спустя несколько месяцев возник ещё один подобный контракт. Компания снова наняла тысячу человек, чтобы показать, что у неё есть персонал. Ещё через несколько месяцев контракт снова был передан другому подрядчику, и компания снова уволила всю тысячу.

                  Читать дальше →
                • Эластичное избыточное S3-совместимое хранилище за 15 минут

                  • Tutorial
                  S3 сегодня не удивишь наверное никого. Его используют и как бэкенд хранилище под веб сервисы, и как хранилище файлов в медиа индустрии, так и как архив для бэкапов.



                  Рассмотрим небольшой пример развертывания S3-совместимого хранилища на основе объектного хранилища Ceph
                  Читать дальше →
                • В этом году московский HighLoad++ побил очередной рекорд, собрав в стенах кампуса Сколково 3096 участников. Под катом подробности двенадцатой по счету конференции. О докладах, спикерах, митапах, выпитых литрах пива, съеденных пирожных, татуировках, чемпионате по Counter-Strike и прочих многочисленных интересностях.
                  Подробности — под катом
                • Ошибка, которая сохранилась в Windows с 1974 года

                  • Перевод
                  Сейчас 2018 год, а это сообщение — ошибка, сохранившаяся с 1974 года. Ограничение, которое встречается даже в самой последней Windows 10, появилось ещё ДО «ЗВЁЗДНЫХ ВОЙН». Баг древний как Уотергейт.


                  В те времена только изобрели штрих-коды, в Америке работала лишь одна телефонная компания, Тед Банди ещё бегал на свободе, а рекорд Бейба Рута по хоум-ранам стоял последние дни.
                  Читать дальше →
                • Повышаем сознательность граждан

                    Привет!

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



                    Почему это важно сделать на бумаге? Потому что она без батарейки, не требует подключения к сети и содержит самые важные номера законов. В общем, бумага очень отказоустойчивая. Естественно, есть и PDF, которую можно просто залить на телефон.
                    Читать дальше →
                  • Курс MIT «Безопасность компьютерных систем». Лекция 16: «Атаки через побочный канал», часть 3

                    • Перевод
                    • Tutorial

                    Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


                    Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

                    Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
                    Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
                    Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
                    Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
                    Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
                    Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
                    Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
                    Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
                    Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
                    Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
                    Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
                    Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
                    Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
                    Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
                    Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
                    Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
                    Читать дальше →
                  • Свежий взгляд на Rust

                    • Перевод
                    Я программирую на Rust уже достаточно давно, но на самом деле это не имеет большого значения. Rust настолько динамичен, что стоит отвлечься на пару месяцев, и придётся писать уже на фактически другом языке. Однако одна вещь остаётся неизменной: вектор развития. С каждым обновлением, каждой модификацией язык становится всё лучше и лучше.

                    Изменениям всё еще не видно конца, но даже сейчас язык уже кажется более стабильным, чем несколько месяцев назад, и начинают появляться некоторые устойчивые шаблоны проектирования API. Я подумал, что настало время исследовать всё это поглубже и решил переписать мою библиотеку для redis.
                    Читать дальше →
                  • Nginx cache: всё новое — хорошо забытое старое

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

                      Но что делать, когда ваш код “идеален”, все тяжелые запросы вынесены в фон, все, что можно, было закэшировано, а сервер все так же не дотягивает до нужных нам показателей SLA? Если есть возможность, то конечно можно докупить новых машин, распределить часть трафика и забыть о проблеме еще на некоторое время.

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