Обновить
4
0.4

Пользователь

Отправить сообщение

Что делать, если ты первый AppSec-инженер в компании? План работ на стартовые полгода

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3K

Сейчас направление Application Security (AppSec) переживает бурный рост. Всё больше компаний выделяют AppSec в отдельное подразделение или начинают строить его с нуля. В крупных корпорациях появляются AppSec бизнес-партнеры, в стартапах лиды разработки всё чаще берут на себя задачи по обеспечению безопасности продуктов. Но с чего начать, если вы — первый AppSec-инженер или руководитель такого направления? Какие задачи поставить в первые полгода, чтобы заложить прочный фундамент?

Меня зовут Алексей Волков, я эксперт в области продуктовой безопасности. Здесь я поделюсь опытом построения AppSec-процессов с нуля в первые полгода: как разобраться в ИТ-ландшафте, настроить процессы и расставить приоритеты, чтобы сразу дать бизнесу ощутимую пользу. Чеклист и советы основаны на моём опыте — без абстракций и нереалистичных ожиданий. При этом важно оговориться, что ваша работа может затянуться — в каждой компании свой ландшафт и у всех проблем бывают разные сроки решения.

Читать далее

Мой первый контейнер без Docker

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров44K

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

tuple в CPython – мутабельный! И другие шокирующие детали из C-шной реализации

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров9.3K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом будет про: мутабельность кортежей (и планы по отмене такого поведения), дичь с ctypes, переиспользование памяти и другие оптимизации.

Ну и конечно – мое полное видео на полтора часа, где будет множество дополнительной информации о деталях работы VM.

Если вам такое интересно или целиком незнакомо – добро пожаловать!

Читать далее

Создаем эмулятор Sega Mega Drive на C++

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров32K

В этой статье описано создание эмулятора 16-битной приставки Sega Mega Drive на C++.

Будет много интересного: эмуляция процессора Motorola 68000, реверсинг игр, графика на OpenGL, шейдеры, и многое другое. И все это на современном C++. В статье много картинок, можно хоть на них посмотреть.

Blast Processing!

Cовмещаем Haproxy, Vless, WebSocket, VPN и сайт на одном порту

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров28K

Cовмещаем Vless, WebSocket, VPN и сайт на одном порту средствами Haproxy, создаем альтернативу VPN на основе WebSocket.

Читать далее

Что не так с cProfile в Python

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.8K

Некоторое время назад с коллегой обсуждали вопрос профилирования программ на Python. Он сказал, что использует gprof2dot для пост‑обработки данных cProfile, в ответ я высказал мысль, о том, что было бы хорошо использовать более современные средства профилирования. И задумался, а можно ли какие‑то из существующих инструментов приспособить для работы с данными в формате pstat, но которые более удобные и дают больше возможностей для анализа.

Читать далее

RAG (Retrieval-Augmented Generation): основы и продвинутые техники

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров23K

В этом посте мы поговорим подробно про RAG на каждом его этапе, его модификации и его перспективные направления развития на момент написания статьи.

Читать далее

Решаем проблему устаревания кэширующих серверов. Смотрим на телевизоре. Не VPN

Время на прочтение3 мин
Количество просмотров109K

Не так давно всех потрясла новость об устаревании оборудования популярного видеохостинга, в результате чего сервис перестал нормально работать и началось замедление. Сначала в замедлении сервиса пытались обвинить Роскомнадзор, но до сих пор нет внятных нормативно-правовых актов (поправьте меня в комментариях, если я ошибаюсь), которые бы позволяли данному органу применять методы блокировки в отношении сервиса. Я не верю, что государственный орган может нарушать закон, поэтому будем исправлять проблему самостоятельно и поднимем свой «кэширующий» сервер.

В качестве нашего «кэширующего» сервера будем использовать дешевый одноплатный компьютер MangoPi MQ-Quad (или другой аналогичный), стоимостью не более $29.

Читать далее

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров173K

Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

В Испании все программисты сеньоры

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров54K

Моя текущая позиция и аутсорсы последних пяти лет на 90% были в западных gamedev студиях, соответственно и общение было преимущественно с не‑ру коллегами. А когда надолго отрываешься от славянских коллективов разработки, то отличия начинают проявляться очень четко, начиная от модели управления командой и заканчивая культурой разработки. Хотя вот культурой я бы это не назвал, скорее плясками варваров‑полуиндусов на останках штатовской империи софтостроения. Индийцы тут ни при чем, а вот практики и сам процесс написания кода очень попахивает этими жителями полумифической страны Индустана. Есть немало книг по истории развития игровой индустрии и истории успехов и провалов разных студий, в основном западных, оставлю в статье список самых интересных и захватывающих, если решите углубиться в историю (кому интересно, будет под спойлером).

Одна из последних — «Not All Fairy Tales Have Happy Endings» (Ken Williams), мемуары одного из основателей Sierra On‑Line, прочитана была около года назад и понравилась больше других, наверное потому, что читая книгу — я, наконец, понимал большинство решений и причин которые привели к тому или иному результату. Этого понимания точно не было десять лет назад, это сложно объяснить, если не работал непосредственно сам долгое время с людьми с иным образом мыслей, культурным кодом, как сейчас принято говорить. Нынешняя команда на 95% франко‑испано‑английская — австралийцы, немного европейцев и американцы. В студии по‑русски говорят трое, включая меня. До этого в карьере были по большей части все же ру‑студии с привычным менталитетом, пускай и под управлением все тех же американцев, но менеджмент скрадывал все огрехи и брал «разговоры как надо» на себя, а нам доставались только технические задачи, грамоты и иногда премии. Десять лет назад, придя в индустрию создания игр, я не задавался вопросом — чем отличаются мои таски, мой код, мои идеи от тасок, кода и идей Джона из Кемпбеловки под Сан‑Хосе, потому что вокруг были все «свои». Сейчас уже тоже все «свои», но те «свои», от этих «своих» отличаются примерно — всем.

Читать далее

Roadmap в DevOps 2025

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров38K

DevOps — это стремительно развивающаяся область, объединяющая разработчиков и специалистов по эксплуатации для автоматизации, ускорения и улучшения процессов доставки программного обеспечения. DevOps-инженеры играют ключевую роль в современном ИТ-ландшафте, помогая компаниям быстро адаптироваться к меняющимся условиям и требованиям рынка. Их задачи охватывают широкий спектр областей: автоматизация инфраструктуры, управление жизненным циклом приложений, настройка мониторинга и обеспечение надёжности систем.

Основная концепция DevOps заключается в устранении барьеров между командами разработки (Dev) и эксплуатации (Ops), что позволяет внедрять изменения быстрее и с меньшими рисками. Это достигается за счёт использования инструментов и подходов, таких как CI/CD (непрерывная интеграция и доставка), Infrastructure as Code (IaC, инфраструктура как код), контейнеризация и мониторинг. Однако DevOps — это не только технологии, но и культура взаимодействия, прозрачности и ответственности в командах.

Читать далее

Сложно о простом. Самые популярные протоколы и принципы их работы. ARP, ICMP, IGMP, TCP, UDP, SCTP, DNS и DHCP. Часть 1

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров92K

Приветствую, коллеги! Меня зовут @ProstoKirReal.

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

Читать далее

Небезопасный Rust сложнее C

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров23K

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

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

Эволюция архитектур нейросетей в компьютерном зрении: классификация изображений

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров9.9K

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

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

Классификация изображений

Правильный путь создания python-библиотеки: от создания до публикации

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров9.9K

Привет, Хабр! Стоит ли говорить, что Python ОЧЕНЬ и ОЧЕНЬ популярный язык программирования, местами даже догоняя JavaScript. Python в мире программирования — это эсперанто, легкий язык созданный для всех, но его владельцам не мешало бы помыться.

В мире программирования создание собственных библиотек — это не просто возможность пополнения своего портфолио или способ структурировать код, а настоящий акт творческого самовыражения (и иногда велосипедостроения). Каждый разработчик иногда использовал в нескольких своих проектах однообразный код, который приходилось каждый раз перемещать. Да и хотя бы как упаковать свои идеи и знания в удобный и доступный формат, которым можно будет поделиться с сообществом.

Если вы ловили себя на мысли: «А почему мне бы не создать свою полноценную библиотеку?», то я рекомендую прочитать вам мою статью.

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

Некоторые из вас могут подумать что мы изобретаем велосипед. А я в ответ скажу — сможете ли вы прямо сейчас, без подсказок, только по памяти, нарисовать велосипед без ошибок?

Читать далее

Установка LLM на скромном VPS

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров17K

«Я тебя завалю, если ещё раз упомянешь AI», — писал автор нашумевшей статьи. В самом деле, хайп вокруг ИИ всем надоел. Но мы всё-таки рискнём поговорить о том, какую LLM поставить на своём сервере и зачем.

Сразу упомянем, что на серверах RUVDS установлены видеокарты NVIDIA Quadro P4000 (на фото). Карты довольно слабенькие, так что подойдут скорее для проектов в образовательных целях и т. д. Тем более что под VPS выделяется максимум 1 ГБ видеопамяти. Но даже в таких спартанских условиях можно запустить LLM.

Кстати, о VPS с видеокартой. Несколько лет назад мы уже писали о сферах их применения и даже проводили тесты. Всё это можно найти здесь.
Читать дальше →

Анализируем HTTP трафик в Wireshark

Время на прочтение5 мин
Количество просмотров19K

Анализатор пакетов Wireshark является одним из основных инструментов, используемых как сетевыми инженерами и администраторами, так и разработчиками и тестировщиками приложений для решения проблем с сетевыми протоколами.

При этом, не все умеют эффективно использовать тот функционал который представляет анализатор для работы с дампами трафика.

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

Читать далее

Ускоряем std::shared_mutex в 10 раз

Время на прочтение35 мин
Количество просмотров56K
В этой статье мы детально разберем атомарные операции и барьеры памяти C++11 и генерируемые ими ассемблерные инструкции на процессорах x86_64.

Далее мы покажем как ускорить работу contfree_safe_ptr<std::map> до уровня сложных и оптимизированных lock-free структур данных аналогичных по функциональности std::map<>, например: SkipListMap и BronsonAVLTreeMap из библиотеки libCDS (Concurrent Data Structures library): github.com/khizmax/libcds

И такую многопоточную производительность мы сможем получить для любого вашего изначально потоко-небезопасного класса T используемого как contfree_safe_ptr<T>. Нас интересуют оптимизации повышающие производительность на ~1000%, поэтому мы не будем уделять внимание слабым и сомнительным оптимизациям.
Читать дальше →

Тюнинг Wireshark

Время на прочтение3 мин
Количество просмотров9.9K

Анализатор пакетов Wireshark является мощным инструментом как для сбора, так и для анализа трафика. Ранее мы уже рассматривали использование Wireshark для работы с пакетами DNS. В этой статье мы рассмотрим различные приемы гибкой настройки данного инструмента для того, чтобы сделать работу с ним более удобной и эффективной.

Настройки Wireshark спрятаны в разделе Edit -> Preferences… Здесь нам доступно множество различных настроек и подробно останавливаться на каждой мы не будем. В разделе Appearance мы можем указать различные настройки для визуального отображения: шрифты, используемые цвета, сохранение размеров и расположения основного окна и многое другое.

Читать далее

Кто такие ИТ-архитекторы и какие задачи они решают

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров23K

Динамичные изменения в обществе и бизнесе вынуждают компании адаптироваться к новым правилам и требованиям при создании продукта. Успех часто сопутствует тем, кто тщательно продумывает стратегию и развивает свои проекты. Одним из таких преимуществ может стать эффективное ИТ-решение.

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

Читать далее

Информация

В рейтинге
2 110-й
Зарегистрирован
Активность