Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Решение cryptopals. Часть 2

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

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

Первая часть

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Новости

Знакомьтесь, SafeTest — новый подход к тестированию фронтенда

Время на прочтение 8 мин
Количество просмотров 443
В этой статье мы поговорим о SafeTest — революционной библиотеке, которая предлагает свежий взгляд на сквозные (E2E) тесты для веб-приложений с пользовательским интерфейсом (UI).
Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Инди в беде — Требуется помощь

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

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

Читать далее
Всего голосов 18: ↑6 и ↓12 -6
Комментарии 11

К чему с годами приводит работа с Dependency Injection и Service Locator

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

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

Так произошло и со мной. Я решил написать полноценный функционал для работы с зависимостями и, так как я Android-разработчик, адаптировать для работы в привычной среде для моих привычных задач. 

Делюсь написанным — вдруг вам это поможет прокачать технические скиллы и создать собственную библиотеку. 

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 1

Истории

Много-агентное планирование траекторий в децентрализованном режиме: эвристический поиск и обучение с подкреплением

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

Привет! Меня зовут Константин Яковлев, я научный работник и вот уже более 15 лет я занимаюсь методами планирования траектории. Когда речь идет о том, чтобы построить траекторию для одного агента, то задачу зачастую сводят к поиску пути на графе, а для этого в свою очередь обычно используют алгоритм A* или какие-то из его многочисленных модификаций. Если же агентов много, они перемещаются в рабочем пространстве одновременно, то задача (внезапно) становится несколько более сложной и применить напрямую A* не получится. Вернее получится, но лишь для небольшого числа агентов (проклятье размерности, куда деваться). Тем не менее для централизованного случая, т.е. для случая, когда есть один (мощный) вычислитель, с которым связаны все агенты и который всё про всех знает, решить задачу много-агентного планирования можно достаточно эффективно. Можно даже находить оптимальные решения для умеренного количества агентов за относительное приемлемое время (например, порядка 1 секунды на современном десктопном PC для 30-50 агентов).

Если же говорить о децентрализованном случае, т.е. о том случае, когда агентам необходимо действовать индивидуально (например, нет устойчивой связи с центральным контроллером), опираясь лишь на собственные (локальные) наблюдения и опыт, то с хорошими решениями задачи становится гораздо сложнее. Когда я говорю “хорошие решения”, я имею в виду прежде всего такие алгоритмы, которые бы давали стройные теоретические гарантии в общем случае. Хотя бы гарантии того, что каждый агент дойдёт (за конечное время) до своей цели. Тем не менее, задача интересная и специалисты из индустрии и академии её пытаются решать.

В этом посте я расскажу о наших свежих наработках в этой области, а именно о гибридном методе, которые сочетает в себе принципы классического эвристического поиска (A*) и обучения с подкреплением (PPO). Метод получился неплохим, превосходящим многие современные аналоги по результатам экспериментов, а соответствующая статья была принята на The 38th AAAI Conference on Artificial Intelligence (пока доступен только препринт). Это одна из топовых академических конференций по искусственному интеллекту, которая в этом (2024) году проходила в Канаде (спойлер: я сам визу получить не успел, но моим коллегам и со-авторам, кто имел ранее выданные Канадские визы, удалось принять личное участие и достойно представить нашу науку на мировом уровне).

Итак, поехали!
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 3

Отчёт о форуме «Кибербезопасность в финансах 2024»

Время на прочтение 7 мин
Количество просмотров 216

Информационная служба Хабра посетила «Кибербезопасность в финансах. Уральский форум 2024», проходившего в Екатеринбурге с 11 февраля по 16 февраля 2024 года. В 2023 году я был на форуме «Магнитка», он раньше был мероприятием по кибербезу в финансах, но с 2023 года стал посвящён промышленной безопасности. В 2024 году я‑таки попал на форум по информационной безопасности в финансах. К сожалению, мне не удалось посетить мастер‑классы — самую интересную часть форума. Она проходила в закрытом формате без СМИ и интернет‑изданий. Но мне удалось попасть на две дискуссии, обойти стенды (их было всего шесть) и взять интервью об NGFW. Последний будет отдельным материалом. Приятного чтения!

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

История об одном экзамене

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

Всем привет! Меня зовут Полина, я специалист по тестированию в ITFB Group. Хотела бы поднять тему сдачи экзаменов для повышения квалификации, а конкретно — экзамена ISTQB (International Software Testing Qualifications Board). Эта международная организация разрабатывает стандарты и сертификацию по тестированию программного обеспечения. Сертификация ISTQB — признанный способ подтверждения компетенций в области тестирования и повышения профессионального уровня в этой сфере.

 В этом посте я поделюсь своим опытом сдачи экзамена ISTQB FL Syllabus 2018 в прошлом году и расскажу о некоторых лайфхаках, которые помогли мне его сдать. Кому интересен мой рассказ, добро пожаловать под КАТ.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

Книга «Тестирование веб-API»

Время на прочтение 22 мин
Количество просмотров 329
imageПривет, Хаброжители!

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

«Тестирование веб-API» — это уникальное практическое руководство, включающее в себя описание всех этапов: от начального проектирования набора тестов до методов документирования, реализации и предоставления высококачественных API. Вы познакомитесь с обширным набором методов тестирования — от исследовательского до тестирования продакшен-кода, а также узнаете, как сэкономить время за счет автоматизации с использованием стандартных инструментов. Книга поможет избежать многих трудностей при тестировании API.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Как введение Security Buddy повысило на 25% киберграмотность пользователей

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

Всем привет! Меня зовут Джамил Меджидов, и я лидирую внутреннее направление Security Awareness в МТС RED. Что бы вы сказали, если бы компании удалось снизить вероятность возникновения киберинцидентов на 70%? Мы постоянно работаем над тем, чтобы минимизировать хакерам векторы для атак. И обнаружили, что несмотря на то, что технические средства защиты работают эффективно, этого недостаточно. Всегда остаётся открытая дверь — социальная инженерия. Здесь на помощь приходят методики повышения киберграмотности пользователей Security Awareness (SA). Мы в компании провели эксперимент — решили не ограничиваться классическими методами SA и ввели роль Security Buddy. Что это такое, как это решение повысило общий уровень киберграмотности сотрудников и чем оно отличается от привычных инструментов Security Awareness — под катом!

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 1

Учите матчасть: почему стоит изучать туториалы перед работой с облаками и кому это особенно важно

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


Миграция компаний в российские облака набирает активные обороты — по итогам 2023 года объем рынка облачных услуг в России показал прирост около 34% и достиг отметки в 121 млрд рублей. Такой спрос на облачные сервисы отчасти обусловлен погоней за преимуществами облаков: снижение порога входа в ИТ, повышение доступности современных инструментов и вычислительных ресурсов, упрощение задач администрирования и управления. Вместе с тем на пути к корректной миграции и желанным преимуществам компании нередко сталкиваются с непониманием принципов и особенностей работы в облачной среде.

Рассказываем, как эту проблему стараются решить облачные провайдеры, зачем нужны туториалы и кому важно их изучать. 
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 1

TOTP без смартфона

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

Когда я решил избавиться от необходимости постоянно носить с собой смартфон, одной из проблем оказалась двухфакторная аутентификация (2FA, приложение Google Authenticator). Остаться без возможности авторизации на множестве сервисов было неприемлемо, нужна была альтернатива.

Беглый поиск вывел меня на утилиту oathtool: командная строка, POSIX, OSS — всё, как я люблю, проблема в принципе решена. Но, как и большинство CLI утилит, её удобно использовать в сочетании с другими утилитами, а для этого полезно написать скриптовую обвязку. Собственно этой обвязкой, а также опытом использования, я и решил поделиться.

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 38

YouTube Shorts из терминала. Как автоматизировать создание видео с помощью FFMPEG и Bash

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

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

Для продвижения игры я начал публиковать Shorts на YouTube, но это отнимало много времени и ресурсов. Будучи инженером, я стараюсь автоматизировать рутинные задачи, поэтому сделал решение, которое самостоятельно нарезает видео на 60-секундные фрагменты. Подробнее — под катом.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 10

Почему в 2024 году у кого-то ещё нет CRM?

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

Энто как же, вашу мать, 
Извиняюсь, понимать?
/Л. Филатов/

Представьте себе: вы приходите в офис компании, а там бухгалтер сидит над главной книгой, правой рукой попеременно откладывает ручку и щёлкает деревянными костяшками на больших счётах. Предварительные данные записаны карандашом и, если что, стираются огромным серо-голубым ластиком «Архитектор». Часть оборотных средств лежит в сейфе в кабинете бухгалтера, а за остальными он или она ходит пару раз в месяц в банк, где заполняет от руки платёжное поручение из специального ящичка. Скорее всего, вы решите, что видите сон из детства или какой-то бред (зависит от года рождения). И для 2024 года это и правда бред. Но поставить компьютеры каждому сотруднику не значит начать работать продуктивно, с другим результатом. Вот это вполне себе данность для компаний малого и даже среднего бизнеса.

Читать далее
Всего голосов 18: ↑15.5 и ↓2.5 +13
Комментарии 3

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн

Где аналитику данных искать стажировки в России и зарубежом? + более 40 горящих стажировок

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

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

👉 3 месяца стажировки в самом неприглядном месте лучше, чем то же время в поисках “идеальной” вакансии

👉 Стажировка в резюме выглядит привлекательнее учебных проектов

👉 После стажировки есть возможность трудоустройства в компанию

Читать больше и найти стажировку
Всего голосов 2: ↑1 и ↓1 0
Комментарии 0

Context receivers — новые extension functions

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

Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давно, но смог найти применение лишь пару месяцев назад. Расскажу о том, что такое context receivers, где их можно использовать, и, конечно же, про «успешный успех» — минус 60% самописного DI в OzonID SDK. Но обо всём по порядку.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 2

«В черном-черном кабинете»: как в Европе начали перехватывать и расшифровывать письма на государственном уровне

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

На тему тайны переписки есть шутка про школьника, который не прочел письмо Онегина к Татьяне, поскольку это нарушение статьи 138 УК. Однако ранее везде действовал противоположный негласный закон — вскрывать и просматривать любую корреспонденцию. Для этого в XVII веке во Франции, а следом и во всей Европе были созданы специальные подразделения со зловещим названием «черные кабинеты» (cabinet noir). Попутно их деятельность подстегнула бурное развитие и выход криптографии на государственный уровень. 

Мы побеседовали с Анастасией Ашаевой, кандидатом исторических наук и старшим научным сотрудником московского Музея криптографии. Она рассказала о начале эпохи «черных кабинетов» и том, что это были за структуры, какой вклад они внесли в государственные дела, дипломатию и вообще жизнь людей. Зашла речь и о шифрах того времени, а также интересных случаях, когда работа cabinet noir повлияла на ход истории. 

Читать далее
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 6

Kotlin Coroutines. Часть 1: Первое погружение

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

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

Меня зовут Соловьев Андрей, я Java-разработчик в «Рексофт». Сегодня мы поговорим про Kotlin Coroutines. Это моя первая серьезная публикация, и я буду рад вашему фидбеку.

Ну что ж, давайте начинать!

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 1

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч. 2)

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

Это вторая и заключительная часть большой статьи. Ознакомиться с первой частью можно по ссылке.

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

Последнее очень важно, так как если при разработке устройства классическим методом разработчик несет вполне существенные затраты на сборку и производство изделия, и любая схемотехническая ошибка или ошибка трассировки печатной платы — это всегда выход на очередную итерацию и попадание на деньги, то при работе с ПЛИС ошибки ничтожны по своей стоимости и легко устранимы. И даже если в серийном изделии обнаруживается ошибка, то её во многих случаях можно устранить очередным апгрейдом прошивки «в поле» без замены изделия. Короче, с приходом ПЛИС разработка цифровой аппаратуры все больше и больше выглядит как программирование, а это, помимо всего прочего, существенно понижает порог вхождения в тему, и все больше программистов становятся разработчиками «железа». А новые люди, в свою очередь, приносят с собой в индустрию новые подходы и принципы.

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

Продолжить погружение
Всего голосов 4: ↑4.5 и ↓-0.5 +5
Комментарии 2

Диплом специалиста ИБ. Часть №5 — Несанкционированный доступ к IoT-устройствам с BLE

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

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

Представьте, что вы написали собственную методику обеспечения безопасности устройств IoT и защитили собранное вами устройство в соответствии с ней. Не захочется ли попробовать проверить его защищенность самостоятельно?

Эта статья является пятой и заключительной в цикле “Диплом специалиста ИБ”, в рамках которого я рассказываю про свой опыт написания выпускной квалификационной работы на программе высшего образования “Компьютерная безопасность”. В предыдущей статье я рассказывал про написание мобильного приложения "Smart Connect" для взаимодействия с ранее разработанными IoT-устройствами (SmartLight и SmartPulse). В этой статье я расскажу про то, как я получал несанкционированный доступ к этим устройствам.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 6

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 7

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

Хабр, я снова пришёл к вам с Ильёй с практическими советами про доступность. Мы показываем, как HTML и CSS могут улучшить или ухудшить её. Напоминаю, что Илья — мой незрячий знакомый, который помогает мне найти наши косяки в вёрстке.


Сегодня мы рассмотрим следующие аспекты:

  • К чему приводят распространённые ошибки с элементом <label>;
  • Лучший лайфхак с inputmode="numeric" улучшающий мою жизнь;
  • Как пользователи скринридера понимают, что модальное окно открыто.

Давайте начнём!

Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 4