Как стать автором
Обновить
48
0.2
Виктор Хомяков @victor-homyakov

Программист

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

Flipper Zero — мнение пентестера после двух лет «полевой» эксплуатации

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

«Дельфин-тамагочи» от Flipper Devices Inc. не нуждается в представлении, но хайп вокруг этого хакерского мультитула уже поутих. Теперь пользователи разделились на два лагеря: одни считают Flipper Zero крутым инструментом, другие не понимают, зачем его купили.

Один из наших пентестеров и социальных инженеров согласился поделиться впечатлениями от использования этого устройства. Он честно рассказал, полезен ли Flipper для проведения тестов на проникновение, какие задачи позволяет выполнять на объектах клиентов и стоит ли устройство своих денег. Рассмотрим плюсы и минусы девайса, с которыми приходится сталкиваться в «полевых» условиях. 

Читать далее
Всего голосов 121: ↑111 и ↓10+135
Комментарии79

Мемоизация в React: я почитал документацию вместо вас

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

В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.  

Так как мы будем рассматривать не самые базовые вещи, касающиеся React, то я не буду останавливаться на таких основах как хуки, состояние, свойства, чистые функции и чистые компоненты, ожидая, что вы ознакомитесь с ними за пределами статьи. А также все рассмотренное ниже относится в первую очередь к React 18. 

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

Локальный HTTPS в dev-окружении — простая настройка

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


Иногда в процессе веб-разработки требуется безопасное окружение в браузере, то есть HTTPS. Удобный способ сделать это — установить локальный УЦ и автоматизировать выдачу сертификатов на любые поддомены lcl.host и localhost. Это более функциональная и удобная альтернатива самоподписанным сертификатам.

Для установки локального УЦ есть инструменты lcl.host и mkcert, которые помогают быстро настроить и использовать HTTPS в dev-окружении.
Читать дальше →
Всего голосов 24: ↑18 и ↓6+17
Комментарии5

Как рассуждать, чтобы проходить Capture The Flag игры

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

Capture The Flag - название ряда соревнований в информатике, чаще всего - в информационной безопасности. Как веб-разработчик, я интересуюсь только CTF в области web'а - поиск уязвимостей, атаки, сетевое взаимодействие. На старте решения первого CTF было трудно понять, как же именно рассуждают проф. игроки, участвующие в турнирах, и я решил написать несколько статей о том, как можно искать зацепки в исходных данных и как раскручивать их до победы.

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

Как запустить WebRTC на сервере, или как я пилю вебкам

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

Всем привет!

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

ДИСКЛЕЙМЕР: это не бескорыстный акт передачи знаний с моей стороны. Я пытаюсь найти инвестиции для своего проекта и создал чат в тг, где буду постить обновления и какие-то мысли касательно его запуска. Так что если интересно, то подписывайтесь, а еще можете поделиться ссылкой с теми, у кого есть лишние бабки =)

Предыстория

Значит решил я создать сервис для одиноких мужчин, где они могут пообщаться с прекрасными дамами, aka вебкам. Соответственно встал вопрос, как организовать видеосвязь в браузере. Обычно для этого используется WebRTC, эта технология позволяет установить p2p соединение между браузерами для передачи видео, звука и прочих данных в реальном времени с минимальной задержкой. Однако была одна проблема: что делать, если приходит жалоба от пользователя, что ему показали не то (или не показали), что он хотел. Поскольку это p2p соединение напрямую между пользователями, у меня как у владельца сервиса нет возможности провалидировать жалобу. Первое, что пришло в голову это вместо WebRTC использовать MediaRecorder API для записи видео небольшими кусочками и отправки их по вебсокету через сервер, попутно сохраняя. Я набросал прототип и столкнулся с тем, что если получатель пропустил первый пакет (там где есть метаданные), то видео у него не воспроизводится. Пришлось поиском определенного набора байт в первом пакете вычленять эти самые метаданные и сохранять их отдельно для отправки первым сообщением только что подключившемуся получателю, и это даже сработало. Вторая проблема этого решения - это задержка в пару секунд, и это только в локальной сети, что приемлемо для односторонней связи, но для двусторонней уже сомнительно. И третья проблема это то что видео у получателя со временем все больше и больше отстает, и нужно регулярно проматывать видео ближе к концу. Костыльность такого решения меня не устраивала, и я решил использовать WebRTC для связи собеседников и параллельно использовать MediaRecorder для отправки записи от модели к серверу. Некоторое время оно так работало, пока я пилил другие фичи, но неэлегантность этого решения все еще не давала мне покоя, т. к. оно повышает требования к интернет соединению модели.

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

Игра в безопасность Android-приложений

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

Давайте в общих чертах рассмотрим вопросы взлома и защиты Android-приложений. 

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

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

Гонка за скоростью: сравнение производительности ведущих фреймворков JavaScript в веб-разработке. Fastify, Express, Koa

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

Недавно я задался вопросом «Какой JS фреймворк самый быстрый». Я обратился с этим запросом в гугл и нашел очевидный ответ «это fastify!». Но почему именно он?.

Я практически сразу наткнулся на статью, результаты которой меня немного расстроили, так как в качестве дополнительной нагрузки на endpoint автор использовал вычисление ряда Фибоначчи, что, по моему мнению, не раскрывает всей сути сравнения. Тогда я решил провести собственное исследование.

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

Как составить резюме, чтобы его точно открыл HR. Метод бутерброда

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

Всем привет! Я Аня Шабаева, HRG в AGIMA. Как-то я уже обсуждала с вами, стоит ли делать тестовое задание. Сегодня хочу рассказать, как дойти до этапа с тестовым. Как сделать свое резюме запоминающимся? Как правильно показать свои навыки, чтобы получить должность мечты? Наливайте чаёк и давайте разбираться. 

Читать далее
Всего голосов 36: ↑29 и ↓7+22
Комментарии30

10 «золотых» советов авторам любых текстов

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

Чем активнее мы курируем авторов, тем больше «налипает» опыта и своего, и чужого: кто-то приносит нам шедевры, кто-то — тексты, которые просто невозможно опубликовать. И вроде каждый случай особенный, но все проблемы и находки вполне себе поддаются систематизации. А значит, можно выделить лучшие практики, которые помогут всем сделать тексты лучше. Начнём с базовых моментов, которые, тем не менее, даже у опытных авторов соблюдаются далеко не всегда.

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

Как NASA развивает Землю, стремясь в космос, и почему это оказалось выгодно экономически

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

США тратят на исследование и покорение космоса больше, чем любая другая страна в мире. С момента своего основания NASA получило более 600 млрд инвестиций и нельзя сказать, что само по себе покорение космоса легко коммерциализируется. Однако каждый доллар, вложенный в NASA, возвращается экономике Штатов уже в виде 7-21 долларов. Один только вклад от программы по передаче технологий NASA позволяет Америке быть конкурентоспособной на мировом рынке. 

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

Ускоряем Nginx за 5 минут

Время на прочтение5 мин
Количество просмотров288K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь
Всего голосов 203: ↑138 и ↓65+73
Комментарии128

Внутреннее представление и оптимизации строк в JavaScript-движке V8: «отмываем» строки, «обгоняем» C++

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

С самого рождения JavaScript в каком-то смысле был языком для манипулирования текстом — от веб-страничек в самом начале до полноценных компиляторов сейчас. Неудивительно, что в современных JS-движках достаточно много сил уделено оптимизации внутреннего представления строк и операций над ними.

В этой статье я хочу рассмотреть, как могут быть представлены строки в движке V8. Попытаюсь продемонстрировать их эффект, обогнав C++ в очень честном бенчмарке. А также покажу, в каких случаях они могут, наоборот, привести к проблемам с производительностью, и что в таких случаях можно сделать.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+82
Комментарии16

AI-генераторы порно фото: этика, тренды и законодательство

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

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

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

AI использует обширные базы данных изображений для обучения, а затем, основываясь на этом обучении, создает новые изображения. Это может включать и порно фото, что и вызывает этические дискуссии.
Читать дальше →
Всего голосов 64: ↑56 и ↓8+72
Комментарии247

Как я поднял свой сервер без возможности выставить для него статический IP адрес

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

Родился я в одном городе, позже переехал жить в другой. В родном городе остался ПК, который стоит без дела. В один прекрасный день решил я из него сделать многофункциональную удаленную машину: чтобы и кодить, и файлы хранить, и сайты/ботов хостить. Идея мне понравилась, я накатил на машину линукс, поставил все валявшиеся без дела диски и начал все это проверять. Но тут оказалось, что в родительском доме интернет тариф не поддерживает возможность установки статического IP адреса по умолчанию - адрес выдается провайдером в случайные моменты времени. Это означало, что я не мог, например, хостить какой-нибудь сервер на этой машине. Более того, я даже банально не мог к ней по SSH подключиться после смены ее адреса.

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

Читать далее
Всего голосов 63: ↑26 и ↓37-3
Комментарии100

Закон больших чисел и закон больших грабель

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

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

Моя интуиция с завидным постоянством подсказывает мне неверное решение поэтому я собрал замечательную коллекцию грабель на которые я наступал и хотел бы ее показать публике. Я не буду использовать формул и законы больших чисел, эти столпы теорвера нам не понадобятся. Обойдемся только граблями их будет много и разных.

Бросать не будем, все брошено до нас
Всего голосов 45: ↑45 и ↓0+45
Комментарии36

Искусство создания понятных графиков

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

Эта статья — субъективное эссе о хороших и плохих практиках в визуализации данных, в нём приведены примеры и объяснения.

В папке Scripts/ на Github есть файлы .Rmd, генерирующие показанные ниже графики. Для их работы требуются R, RStudio и пакет rmarkdown.

Читать дальше →
Всего голосов 68: ↑67 и ↓1+91
Комментарии10

Эффективность на максимум: Микрооптимизации в Golang

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

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

Каждая миллисекунда имеет значение, микрооптимизация это must have, особенно на языке Go.

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

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

Топ 10 deepnude нейросетей 2023 года

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

DeepNude — это технология, использующая нейросети для создания изображений обнаженных тел на основе одетых фотографий или видео. Суть этой технологии заключается в том, чтобы "снять" одежду с изображения человека с помощью искусственного интеллекта и показать, как, предположительно, выглядит тело человека под одеждой.

Итак, в данной статье поговорим о пикантных и для некоторых людей непристойных темах, которые больше всего интересуют наше общество - обнаженное тело. Сделаем обзор таких сервисов как: Deepnude.ai, Deepfake.com, DeepSwap.ai, SoulGen и прочих.

Читать далее
Всего голосов 87: ↑73 и ↓14+85
Комментарии68

Всё-таки схождение к нормальному распределению происходит медленно

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

Многие реальные данные при использовании центральной предельной теоремы (ЦПТ) не сходятся быстро, поэтому не стоит применять её слепо. В этой статье мы разберём наглядные примеры этого и познакомимся с альтернативами для ЦПТ.
Читать дальше →
Всего голосов 49: ↑47 и ↓2+66
Комментарии15

Мои любимые вопросы о CSS с ответами. Версия 2023 года

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

В 2020 году я поделился списком моих любимых вопросов о CSS, который стал довольно популярным, судя по просмотрам. Спустя 3 года CSS изменился, и я решил дополнить список, добавив вопросы про гриды, пользовательские свойства (CSS-переменные), новые селекторы и свойства.

Работая над вопросами, мне хотелось помочь вам в изучении новых возможностей CSS и тех моментов, которые многие разработчики упускают, судя по моей практике. Также вы можете использовать их, если проводите интервью. Я буду только рад этому. А теперь давайте начнём.
Читать дальше →
Всего голосов 39: ↑38 и ↓1+48
Комментарии18

Информация

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

Специализация

Frontend Developer, Специалист по производительности приложений в Node.js и браузерах
Senior
От 8 000 €
Performance
Performance Tuning
JavaScript
React