Как стать автором
Обновить
18
0
Vadim Shchepotev @avengerweb

Senior Software Engineer at Applied Materials

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

Окей, Джанго, у меня к тебе несколько вопросов

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

Недавно я проходил очередное интервью, и меня спросили, пишу ли я на flask, на что я ответил, что я себя люблю, и поэтому пишу на django. Меня не взяли, потому что, кхм, у них, оказывается, много чего было на фласке, и вышло неловко. Да-да, я знаю, фласк крут, потому что он простой, всё что надо ставишь сам, а чего не надо там и так нет, но как по мне, всё равно потом получается django.

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

Читать далее
Всего голосов 93: ↑89 и ↓4+85
Комментарии23

Перехватываем цифровые радиопереговоры, или куда едут экипажи в 5 утра

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

Шел апрель 2020 года, ковидная пандемия набирала обороты. Местные власти объявили "карантин", и от скуки сидения дома в один из дней мне пришла в голову мысль разобрать завалы хлама в старой квартире. В одной из коробок мне попался ноунеймовый USB DVB-тюнер на чипе RTL2832U с Алиэкспресса, и тут я призадумался. Вспомнилось, что много-много лет назад я игрался с ним и в эфире можно было услышать много интересного. "А почему бы не поиграться еще раз?" — возникла в голове мысль, которая и положила начало этой истории.

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

Трюк с XOR для собеседований и не только

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


Есть целая куча популярных задач для собеседований, которые можно решить одним из двух способов: или логичным применением стандартных структур данных и алгоритмов, или использованием некоторых свойств XOR сложным для понимания способом.

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

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии104

Взлом хешей с помощью HashCat

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


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


Hashcat поддерживает:


  • Процессоры:
    • CPU
    • GPU
  • Другие аппаратные ускорители в:
    • Linux
    • Windows
    • macOS

Также hashcat имеет средства, которые помогают включить распределенный взлом паролей.


HashCat поддерживает следующие режимы атаки:


  • Брутфорс
  • Комбинаторная атака
  • Гибридная атака
  • Атака по Маске
  • Перестановочная атака
  • Атака на основе правил
  • Табличная атака
  • Атака с переключением регистра

С помощью данной команды можно проверить все доступные параметры:


hashcat –h


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


Содержание:


  • MD5-хеши
  • MD5-хеши с солью
  • Хеш-суммы MD5Crypt
  • HMAC-SHA1 key
    • Хеш-суммы SHA-1
  • Хеши SHA2–384
  • Хеши SHA3–512
  • NTLM-хеши
  • CRC32-хеши

MD5-хеши


Убедитесь, что входные хеши имеют совместимый с hashcat формат.


Пример:


8743b52063cd84097a65d1633f5c74f5 >hash.txt


Команда:


hashcat -m 0 -a 0 hash.txt passwordlist.txt
Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии16

Почему Kafka такая быстрая

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


За последние несколько лет в сфере архитектуры ПО произошли огромные изменения. Идея единственного монолитного приложения или даже нескольких крупных сервисов, разделяющих общий массив данных, практически стерта из умов и сердец инженеров-практиков во всем мире. Преобладающими инструментами в создании современных бизнес-ориентированных приложений стали автономные микросервисы, событийно-ориентированная архитектура и CQRS. Вдобавок быстрый рост количества подключаемых устройств (мобильных, IoT) многократно увеличивает объем событий, которые система должна оперативно обрабатывать.


В статье рассказываем, за счет чего Apache Kafka работает достаточно быстро для современных проектов.

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

Исследование возможных заимствований и нарушений условий лицензирования в Java-коде на GitHub

Время на прочтение19 мин
Количество просмотров3.9K
Меня зовут Ярослав Голубев, я работаю в JetBrains Research, в лаборатории методов машинного обучения в программной инженерии. Некоторые мои коллеги уже писали здесь о своих проектах (например, о подсказках для онлайн-курсов). Общая цель нашей группы — сделать работу программистов проще, удобнее и эффективнее, используя данные о том, что и как люди программируют. Однако процесс создания программных продуктов состоит не только из написания кода — есть еще документация, комментарии, рабочие обсуждения и многое другое — и со всем этим людям тоже можно и нужно помогать.

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

Любая помощь людям начинается с исследования сложившейся ситуации — во-первых, сбор данных необходим для возможности дальнейшей автоматизации, а во-вторых, их анализ позволит нам узнать, что именно люди делают не так. В этой статье я опишу именно такое исследование: познакомлю вас с основными видами лицензий ПО (а также несколькими редкими, но примечательными), расскажу об анализе кода и поиске заимствований в большом объеме данных и дам советы о том, как правильно обращаться с лицензиями в коде и не допускать распространенных ошибок.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии5

20 небольших, но вдохновляющих вызовов веб-разработчику

Время на прочтение7 мин
Количество просмотров21K
Специально к старту нового потока курса «Frontend-разработчик» делимся переводом подборки с 20 проектами для освоения фронтенда. Эта подборка хорошо подходит, если вы хорошо знакомы с какой-то областью разработки ПО и хотите глубже копнуть во фронтенд. Также она прекрасно подходит людям, которые не хотят начинать знакомство с фронтендом со стандартных проектов. Проекты довольно небольшие, и у каждого указан уровень сложности. С помощью этих проектов вы ознакомитесь с Tone.js — обёрткой над Web Audio, освоите необычно мягкую смену темы со светлой на темную, и наоборот, а почти в конце ждёт самое вкусное — управляемая голосом векторная графика SVG.


Приятного чтения!
Всего голосов 42: ↑35 и ↓7+28
Комментарии18

Слабые модели памяти: буферизации записи на x86

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

Об авторе


Антон Подкопаев является постдоком в MPI-SWS, руководителем группы слабых моделей памяти в лаборатории языковых инструментов JetBrains Research и преподавателем Computer Science Center.

Еще в 1979 году Лесли Лампорт в статье «How to make a multiprocessor computer that correctly executes multiprocess programs» ввел, как следует из названия, идеализированную семантику многопоточности — модель последовательной консистентности (sequential consistency, SC). Согласно данной модели, любой результат исполнения многопоточной программы может быть получен как последовательное исполнение некоторого чередования инструкций потоков этой программы. (Предполагается, что чередование сохраняет порядок между инструкциями, относящимися к одному потоку.)

Рассмотрим следующую программу SB:



В этой программе два потока, в каждом из которых первая инструкция — инструкция записи в разделяемую локацию (x или y), а вторая — инструкция чтения из другой разделяемой локации. Для этой программы существует шесть чередований инструкций потоков:


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

Защита форм от спама «невидимой» Google reCAPTCHA v3 без потери баллов по PageSpeed Insight

Время на прочтение4 мин
Количество просмотров38K
Периодически возникал вопрос по защите от ботов различных форм на сайте: регистрация, авторизация, подписка на рассылку, обратная связь, комментирование и т.д.

Стандартная капча — бесполезная, ботами она проходится «на раз», а пользователям создает проблемы.

Оптимальное решение это использовать Google reCAPTCHA v2 или v3. Обе версии Google reCAPTCHA — отличный вариант. Это лучшее, что сейчас доступно на рынке из понятных и надежных решений к тому же бесплатных.

Основная проблема у обеих версий — при подключении значительно снижаются баллы по PageSpeed Insight на 20-30.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии26

Информация

В рейтинге
5 131-й
Дата рождения
Зарегистрирован
Активность