Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье узнаем IPv6 адрес сервера с помощью FXP, поработаем с rsync, а также запишем ssh-ключ используя SQL-инъекцию при обработке журналов логов в Postgres.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
У вас настроен супер-стрикт-набор валидаторов кода, обязательная аннотация типов без Any и требования стопроцентного покрытия кода тестами? У меня тоже нет. Это не потому, что мы с вами бесполезные и непрофессиональные разработчики, а потому что надо дело делать, а не типы вылизывать.
Когда вы пишете на низкоуровневом языке, таком как С, вы беспокоитесь о выборе правильного типа данных и спецификаторах для ваших целых чисел, на каждом шаге анализируете достаточно ли будет использовать просто int или нужно добавить long или даже long double. Однако при написании кода на Python вам не нужно беспокоиться об этих «незначительных» вещах, потому что Python может работать с числами типа integer любого размера.
В С, если вы попытаетесь вычислить 2^20000 с помощью встроенной функции powl, то на выходе получите inf.
Столкнулся с задачей модификации html-отчета при работе с pytest, в результате чего нашёл удобное для своей задачи решение, хочу им поделиться — возможно кому-то пригодиться.
Мы в ЦИАН любим микросервисы: на C#, на JS и, конечно же, на Python. Когда создаешь микросервис в 50-й раз, уже видишь повторяющиеся шаги и примерно представляешь себе "минимальный джентльменский набор" того, что должно быть внутри.
Большой объем информации в интернете хранится в текстах: новости, комментарии, сообщения и даже вакансии. В докладе мы рассмотрим набор рецептов по анализу текста на Python не углубляясь в теорию. Возможно, рецепты вдохновят вас узнать про лежащие в основе методы больше, но в любом случае сразу после доклада у вас будет понимание, как применять полученные сниппеты у себя в работе
Речь пойдет о том, как мы поддерживаем здоровье кодовой базы в проекте с безумными требованиями к скорости и постоянно меняющимися задачами. Мы поговорим про TDD, SOLID и KISS там, где люди меньше всего к этому готовы — в стартапе, который доставляет стройматериалы
Нейронные сети довольно популярны. Их главное преимущество в том, что они способны обобщать довольно сложные данные, на которых другие алгоритмы показывают низкое качество. Но что делать, если качество нейронной сети все еще неудовлетворительное?
И тут на помощь приходят ансамбли...
В этой статье я расскажу о том, как Parquet сжимает большие наборы данных в маленький файл footprint, и как мы можем достичь пропускной способности, значительно превышающей пропускную способность потока ввода-вывода, используя параллелизм (многопоточность).
Вы что код с ошибками пишете?! Да! И чтобы их обнаружить, в дополнение к программе мы пишем тесты. Но так ли они хороши? Во время доклада обсудим несколько простых техник тестирования, которые мы обычно не применяем.
Big Data сегодня — динамически развивающаяся отрасль. Как бы мы могли использовать python для обработки больших объёмов данных? В этом ознакомительном докладе я расскажу про Apache Spark, и как его можно использовать для обработки данных на python.
Из этого доклада вы узнаете о том, почему REPL в Python бесполезен, даже если это волшебный ipython. Будет предложено одно из возможных решений этой проблемы. В первую очередь доклад будет интересен тем, кого интересует более быстрая и эффективная разработка, а также тем, кто разрабатывает stateful системы.
Почти каждый месяц появляются новости об утечках данных пользователей из социальных сетей. На этой волне я написал twitter-оподобную социальную сеть с заложенной цепочкой уязвимостей для соревнований типа CTF. На ее примере я расскажу про разработку современного web-сервиса и его возможные уязвимости. Рассмотрим, что к ним привело, и как их можно было избежать при проектировании и разработке.
Большинство разработчиков собирают логи своих приложений. Обращения к базе данных, HTTP-запросы и ответы API, задачи Celery. Логи полезны: там видны пятисотки от внешних сервисов, проседания производительности и неожиданно возросшее время ответа после деплоя в пятницу вечером.
Очень часто во время работы над каким-либо проектом возникают задачи решение которых требует ввода в консоль нескольких команд, такие как, например, пересборка фронтенда, запуск/остановка нескольких docker-контейнеров, развертывание окружения на новом девелоперском компе и тому подобные вещи.
И вот, собственно, однажды возникла идея как сократить время на это вот все, максимально упростив процесс, реализовав небольшую утилиту, позволяющую обернуть наборы часто производимых действий в пункты удобного меню выводимого в консоль.
Какие ключевые метрики сложности кода существуют. Вы познакомитесь с двумя разными концепциями сложности. Были рассмотрены сложные примеры и способы борьбы.
Осенью 2019 мы запустили сервис поиска похожих изображений на основе библиотеки faiss. Он помогает нам понимать, что фотографии уже встречались в другом объявлении, даже если они достаточно серьёзно искажены: размыты, обрезаны и тому подобное. Так мы определяем потенциально фейковые публикации.
Мне бы хотелось рассказать о тех проблемах, с которыми мы столкнулись в процессе создания этого сервиса, и наших подходах к их решению.
В прошлой статье мы описали эксперимент по определению минимального объема вручную размеченных срезов для обучения нейронной сети на данных сейсморазведки. Сегодня мы продолжаем эту тему, выбирая наиболее подходящую функцию потерь.
Рассмотрены 2 базовых класса функций – Binary cross entropy и Intersection over Union – в 6-ти вариантах с подбором параметров, а также комбинации функций разных классов. Дополнительно рассмотрена регуляризация функции потерь.
Спойлер: удалось существенно улучшить качество прогноза сети.
В 2019 году нам потребовалось автоматизированно проверить умение писать Python-код у сотен разработчиков. Так мы отбирали будущих студентов для Школы бэкенд-разработки. Это не то же самое, что предложить решить задачу на листе бумаги, как на собеседовании. С другой стороны, мы также не могли переиспользовать условия задач, уже подготовленные для наших соревнований по программированию. Дело в том, что соревнования с целью определить лучших из лучших — это одно, а отбор специалистов с небольшим опытом в школу — совсем другое. Нам требовались задачи, по решению которых было бы видно, обладает ли разработчик базовыми навыками написания кода и умением грамотно использовать память и время. Вот какие условия мы составили.
В этой статье я бы хотел рассказать как можно реализовать автоматический контроль над изменениями данных в проектах построенных с использованием Django.