Сегодня мы хотим рассказать о Pingora, новом HTTP-прокси, который мы создали своими силами с использованием Rust и который обслуживает более 1 триллиона запросов в день, повышает нашу производительность и предоставляет множество новых возможностей для клиентов Cloudflare, требуя при этом лишь треть ресурсов процессора и памяти от объема ресурсов нашей предыдущей инфраструктуры прокси.
По мере роста Cloudflare мы переросли NGINX. Он был прекрасен в течение многих лет, но со временем его ограничения в наших масштабах привели к тому, что нам захотелось создать что-то новое. Мы больше не могли обеспечивать необходимую производительность, и NGINX не обладал функциями, необходимыми для нашей очень сложной среды
В статье представлен код позволяющий отправлять транзакционные письма через сервис unione, делать HTTP запросы к REST апи, а так же отправлять обычные email по smtp используя общий класс отправитель различных сообщений.
В процессе создания своей схемы метро я использовал SVG-схему из Википедии как визуальный образец. После добавления возможности расчёта и вывода пути к своей схеме стал думать о том, как использовать алгоритм поиска по графу и для других подобных схем. И решил недавно попробовать адаптировать его для эталонной схемы из Википедии.
Для этого решил адаптировать не алгоритм к схеме, а схему к алгоритму. Поскольку алгоритм BFS использует перебор массивов станций, координат линий и пересадок, то нужно было распарсить схему из Википедии в массивы: для этого я написал различные варианты CSS-селекторов.
В начале своего разработческого пути, меня часто посещало желание понять и принять паттерны. Но в интернете, этот материал крайне сложен для начинающих программистов. Поэтому я решил создать цикл статей, в которых разберу все GoF паттерны.
Первым разобранным шаблоном будет Снимок, замечательный паттерн, который часто не могут понять начинающие разработчики.
В первой части мы рассказали о нескольких самых ранних из известных компьютерных вирусов на заре их зарождения. Теперь мы расскажем о вирусах на рубеже 80-х и 90-х годов. Это время стало эпохой не только колоссальных политических перемен, но и превращения вирусов из творений отдельных энтузиастов в предмет массового увлечения для одних и огромную проблему для других.
В среде разработчиков бытует мнение, что информационная безопасность относится к IT не напрямую, а косвенно, что это вспомогательная область и даже вторичная. Но так ли это на самом деле? На этот неоднозначный вопрос серьезно и обстоятельно ответили спикер Слёрма Роман Панин и его коллега Павел Шатилов, руководители направления архитектуры ИБ в МТС.
Говорим о компактной утилите для сбора цифровых отпечатков. Её применяют для оценки безопасности ИТ-инфраструктуры. Обсудим возможности и альтернативы.
В предыдущей статье мы подробно рассказали об истории создания и внедрения высокоскоростных поездов (ВСП) за рубежом. В нашей стране также велись подобные работы и об этом расскажем в нашем материале.
Сканер уязвимостей на Python или как написать сканер за 6 часов
Недавно мне довелось участвовать в хакатоне по информационной безопасности на научной конференции в прекрасном городе Санкт-Петербург в СПбГУТ. Одно из заданий представляло из себя написание собственного сканера уязвимостей на любом ЯП с условиями, что использование проприетарного ПО и фреймворков запрещено. Можно было пользоваться кодом и фреймворками существующих сканеров уязвимости с открытым кодом. Это задание и мое решение с моим коллегой мы и разберем в этой публикации.
Всем привет, меня зовут Алексей Жуков, я старший программист в студии IT Territory. В этой статье я расскажу, как мы строили игровой сервер для Rush Royale. Объясню, почему создание сервера в геймдеве — это не так просто, как кажется на первый взгляд, а также опишу плюсы и минусы реактивного подхода, который мы использовали в нашей работе.
Как бы мы себя не обманывали - Размер имеет значение! И конечно, мы будем говорить о размере нашего андроид приложения, куда мы добавляем кучу классных features, и даже не задумываемся как это может негативно повлиять на размер приложения. Поэтому мы научимся обнаруживать регрессию размера нашего приложения на CI для автоматизации этого процесса.
В данной части, обсудим как можно проверять размер в pull request, что позволит автоматизировать весь процесс обнаружения регрессии, до того как изменения попали в development.
Команда Rust рада сообщить о новой версии языка — 1.64.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.64.0 вам достаточно выполнить команду:
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta) или nightly (rustup default nightly) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.
Заключительная часть последней версии руководства по созданию модулей ядра от 02 июля 2022 года. Здесь мы рассмотрим обработку прерываний, криптографию, стандартизацию интерфейсов с помощью модели устройства, а также разберём принцип работы драйвера виртуального устройства ввода и возможность внесения в модуль некоторой оптимизации. В завершение же я укажу на пару неявных, но важных нюансов, а также дам рекомендации по дальнейшему погружению в тему программирования ядра.
Каждый начинающий программист мечтает реализовать свой собственный проект. Не написать простенький код, по заданию преподавателя, а воплотить в жизнь свои идеи. Так и я, изучая C++ 3-4 месяца, решился попробовать разработать макет электронного журнала для преподавателей.
За последние четыре года мы выстроили процесс адаптации, который оставляет хорошее впечатление даже у мегаопытных новых сотрудников. Сегодня мы расскажем про основные этапы и поделимся списком действий первостепенной важности. Эти принципы легко можно адаптировать под инженеров любого уровня, которых вы нанимаете.