Search
Write a publication
Pull to refresh
4
0
xRay @xRay

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

Send message

RangeAmp — новая уязвимость позволяет проводить DDoS-атаки с коэффициентом амплификации в десятки тысяч

Reading time5 min
Views4.2K

Буквально на днях группой китайских ученых была открыта уязвимость, позволяющая проводить DDoS-атаки с амплификацией. Авторам удалось провести атаку с коэффициентом 43000! Новая атака может не только истощать ресурсы иcходящего канала целевого веб-сервера, но и каналы CDN нод. Уязвимыми оказались все 13 из 13 проверенных крупнейших CDN провайдеров, включая Akamai, Fastly и Cloudflare. Под катом рассмотрим механизм атаки и предложенные авторами меры.


THUMB

Читать дальше →

NextDNS вышел из беты — защита приватности, обход госцензуры и блокировка рекламы для всей домашней сети

Reading time2 min
Views68K


Cервис NextDNS наконец-то вышел из беты и теперь официально предоставляет бесплатные услуги по блокировке рекламы и других вредоносных IP-адресов на уровне DNS. Это простой и эффективный метод защиты: NextDNS автоматически фильтрует трафик, не ведёт логов, шифрует DNS-запросы, поддерживает DNS over HTTPS (DoH), представляя собой альтернативу известным DNS-резолверам от корпораций Google, Cloudfalre и «Яндекс».

NextDNS похож на расширения для браузера вроде uBlock Origin, только блокирует адреса на уровне DNS, что в некоторых случаях представляется более удобным вариантом, потому что NextDNS блокирует ненужные запросы не только из браузера, но из других программ, например, из ОС Windows, MS Office, Adobe и так далее.
Читать дальше →

Как живые: наш опыт редактирования старых фотографий

Reading time11 min
Views34K
Семейной историей мы с мужем занимаемся уже лет десять. Накопилась большая база черно-белых фотографий по каждому из сотен предков и их родственников. Самое важное на таких фото — это, конечно, лица людей. Чтобы делиться с роднёй и публиковать в интернете, хочется иметь эти фото в хорошем качестве, находить новые, интересные детали.

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

Хотим поделиться со всеми, кому интересно это ремесло, теми программами, которые мы открыли, а также некоторыми способами их комбинирования в правильном порядке. Речь пойдет об онлайн-приложении Remini, сервисе «Компьютерное зрение от почты mail.ru», приложении Google Snapseed, а также о ряде других штуковин. 

Читать дальше →

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

Reading time5 min
Views15K
Сначала, я “просто” смотрел кино. Потом узнал, что существуют “правильные переводы Гоблина” и перешел на них. Затем выяснилось, что существуют и другие авторские закадровые переводы. Потом были русские субтитры и оригинальные звуковые дорожки.

Затем логичным образом должен был идти переход на английский звук и английские субтитры.

Но… все оказалось не так просто, как казалось.



И я придумал выход из этой ситуации.

Vue.js компонент для справки/документации

Reading time4 min
Views4.1K

VB-preview


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

Читать дальше →

Как выучиться на Data Scientist: наиболее востребованные технические навыки

Reading time6 min
Views10K
Какие технические знания становятся наиболее популярными у работодателей, а какие теряют свою популярность.

image

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

Я искал ключевые слова, которые появлялись в списках вакансий на должность «Data Scientist» в США на таких сайтах как SimplyHired, Indeed, Monster и LinkedIn. В этот раз я решил написать код, чтобы изучить все списки вместо того, чтобы искать вручную. Это решение оказалось очень успешным для SimplyHired, Indeed и Monster. Я использовал Requests и Beautiful Soup из библиотеки Python HTTP. Код с анализом вы можете увидеть в моем отчете на GitHub.

Продираться через LinkedIn оказалось в разы сложнее. Необходимо пройти процесс авторизации, чтобы просматривать точное количество списков вакансий. Я решил использовать Selenium для просмотра страниц без графического интерфейса пользователя. В сентябре 2019 года Верховный суд США выиграл дело против LinkedIn, тем самым позволив очистить данные сайта. Тем не менее, я не смог получить доступ к своей учетной записи после нескольких попыток входа. Возможно, эта проблема возникла из-за ограничения скорости. Апдейт: Я все же смог войти, но боюсь, что меня заблокируют при повторной попытке.
Читать дальше →

Проверяем уровень защищённости Linux с помощью утилиты Lynis

Reading time8 min
Views50K
Разбираемся, как использовать одну из самых мощных свободно распространяемых утилит для аудита Linux-систем.


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

Чтобы получить информацию о системе, то есть проверить общее состояние программного обеспечения, сети и служб, работающих на вашем компьютере с установленной ОС Linux, достаточно выполнить несколько команд. Но что теперь делать с полученной информацией? Как в ней разобраться? Ведь объём данных, которые вам нужно проанализировать, огромен.
Читать дальше →

Публикуем дизайн-библиотеки компонентов VKUI в Figma

Reading time3 min
Views10K

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


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


Читать дальше →

Шаблон backend сервера на Golang — часть 2 (REST API)

Reading time32 min
Views33K

UPD. Ссылка на новый репозиторий проекта с поддержкой развертывания в Kubernetes


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


Первая часть шаблона посвящена HTTP серверу:


  • настройка HTTP сервера через командную строку и конфигурационный файл
  • настройка параметров TLS HTTP сервера
  • настройка роутера и регистрация HTTP и prof-обработчиков
  • настройка логирования HTTP трафика, логирования ошибок в HTTP
  • HTTP Basic и MS AD аутентификация, JSON Web Token
  • запуск сервера с ожиданием возврата в канал ошибок
  • использование контекста для корректной остановки сервера и связанных сервисов
  • настройка кастомной обработки ошибок и кастомного логирования
  • сборка кода с внедрением версии, даты сборки и commit

Вторая часть шаблона посвящена прототипированию REST API.
Ссылка на репозиторий проекта осталась прежней.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Архитектура шаблона REST API


В ходе тестирования шаблона на стенде были получены следующие результаты.

Читать дальше →

Визуализация промисов и Async/Await

Reading time8 min
Views45K


Доброго времени суток, друзья!

Представляю вашему вниманию перевод статьи «JavaScript Visualized: Promises & Async/Await» автора Lydia Hallie.

Приходилось ли вам сталкиваться с JavaScript кодом, который… работает не так, как ожидается? Когда функции выполняются в произвольном, непредсказуемом порядке, или выполняются с задержкой. Одна из главных задач промисов — упорядочение выполнения функций.

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

Быстрый роутинг и NAT в Linux

Reading time6 min
Views55K
По мере исчерпания адресов IPv4, многие операторы связи столкнулись с необходимостью организовывать доступ своих клиентов в сеть с помощью трансляции адресов. В этой статье я расскажу, как можно получить производительность уровня Carrier Grade NAT на commodity серверах.
Читать дальше →

Визуализация сетевых топологий, или зачем еще сетевому инженеру Python #2

Reading time49 min
Views34K

Привет, Хабр! Эта статья написана по мотивам решения задания на недавно прошедшем онлайн-марафоне DevNet от Cisco. Участникам предлагалось автоматизировать анализ и визуализацию произвольной сетевой топологии и, опционально, происходящих в ней изменений.


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

Всем заинтересовавшимся добро пожаловать под кат!


Читать дальше →

Универсальное событие в Google Tag Manager

Reading time2 min
Views6K

Если вы отслеживаете множество событий и то и дело добавляете новые, вам приходится выполнять серию одних и тех же операций:


  1. Повесить событие на сайте.
  2. Создать в GTM триггер.
  3. Создать в GTM тэг отправки события в Google Analytics.
  4. Создать в GTM тэг отправки события в Яндекс Метрику.
  5. Если у вас собираются данные для ретаргетинга в Facebook и VK, то для каждого из них нужно создать в GTM еще по тэгу.

При этом количество сущностей в GTM растет и ориентироваться в них становится всё утомительней. (А еще GTM не резиновый и допустимое количество сущностей ограничено.)


Я придумал и внедрил решение, которое позволяет:


  • сократить рутину, избавляя от шагов 2-5;
  • не плодить тэги;
  • упростить управление событиями.

Нужно только один раз настроить несколько сущностей в GTM и больше вообще его не трогать при добавлении новых событий! Подробности по порядку.

Читать дальше →

Python: Работа с базой данных, часть 2/2: Используем ORM

Reading time14 min
Views117K
часть 1/2: Используем DB-API часть 2/2: Используем ORM
Это вторая часть моей статьи по работе с базой данных в Python. В первой части мы рассмотрели основные принципы коммуникации с SQL базой данных, а в этой познакомимся с инструментарием, позволяющим облегчить нам это взаимодействие и сократить количество нашего кода в типовых задачах.

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


Требуемый уровень подготовки: базовое понимание SQL и Python (код статьи проверялся под Python 3.6). Желательно ознакомится с первой частью, так как к ней будут неоднократные отсылки и сравнения. В конце статьи есть весь код примеров под спойлером в едином файле и список ссылок для более углубленного изучения материала.
Читать дальше →

Понимание CSS Grid (3 часть): Grid-области

Reading time8 min
Views23K

Приветствую! Представляю вашему вниманию перевод статьи «Understanding CSS Grid: Grid Template Areas» автора Rachel Andrew



При использовании CSS Grid, вы можете располагать элементы на сетке, указывая начальную и конечную grid-линии. Однако, существует и другой, более наглядный способ описания разметки. В этой статье мы узнаем, как использовать свойство grid-template-areas для размещения элементов на сетке и выясним, как оно в действительности работает.

TV first, отзывчивая типографика или как не забыть о всех размерах девайсов

Reading time12 min
Views3.2K

Добрый день, хабровчане! Не так давно я опубликовал перевод статьи "Полностью отзывчивый дизайн — это больше, чем просто медиа-запросы". В той публикации я пообещал рассказать вам, как я применял данную технику в своем проекте, с чем мне пришлось столкнуться и все связанные с этой техникой особенности, на которые обязательно стоит обратить внимание при разработке. В сегодняшней публикации я постараюсь выполнить свое обещание. Если вам интересен опыт практического использования техники отзывчивых шрифтов в реальном проекте, прошу под кат.


Читать дальше →

Визуальный отладчик для Jupyter

Reading time6 min
Views19K
Прогресс большинства программных проектов строится на малых изменениях, которые, перед тем, как двигаться дальше, тщательно оценивают. Быстрое получение результатов выполнения кода и высокая скорость итеративной разработки — это одни из основных причин успеха Jupyter. В особенности — в сфере научных исследований.

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


Окружение JupyterLab

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

Правда, до недавнего времени в JupyterLab кое-чего не хватало. Речь идёт о том, что являло собой главную причину, по которой пользователи вынуждены были переключаться на другие среды. Пользователям Jupyter не хватало визуального отладчика. Пользователи, особенно те из них, которые привыкли к обычным IDE, долго просили об этой возможности.
Читать дальше →

Интерактивные эксперименты с машинным обучением (на TensorFlow)

Reading time6 min
Views6.8K

Вкратце


Я создал новый проект Интерактивные эксперименты с машинным обучением на GitHub. Каждый эксперимент состоит из Jupyter/Colab ноутбука, показывающего как модель тренировалась, и Демо странички, показывающей модель в действии прямо в вашем браузере.


Несмотря на то, что машинные модели в репозитории могут быть немного "туповатенькими" (помните, это всего-лишь эксперименты, а не вылизанный код, готовый к "заливке на продакшн" и дальнейшему управлению новыми Tesla), они будут стараться как могут чтобы:


  • Распознать цифры и прочие эскизы, которые вы нарисуете в браузере
  • Определить и распознать объекты на видео из вашей камеры
  • Классифицировать изображения, загруженные вами
  • Написать с вами поэму в стиле Шекспира
  • И даже поиграть с вами в камень-ножницы-бумагу
  • и пр.

Я тренировал модели на Python с использованием TensorFlow 2 с поддержкой Keras. Для демо-приложения я использовал React и JavaScript версию Tensorflow.


Интерактивные эксперименты с машинным обучением

Читать дальше →

PHP-Дайджест № 179 (21 апреля – 4 мая 2020)

Reading time5 min
Views13K

Свежая подборка со ссылками на новости и материалы. В выпуске: 4 принятых RFC предложения для PHP 8, включая атрибуты (аннотации / декораторы), порция полезных инструментов, онлайн-конференции и митапы, видео, подкасты и многое другое.

Приятного чтения!


Читать дальше →

Новый способ отслеживания данных в Google Tag Manager – Server-Side Tagging

Reading time5 min
Views5.3K
В этой статье хочу вам рассказать про новую фичу от Google Tag Manager — Server-Side Tagging — отслеживание данных на стороне сервера. Этот функционал, по словам его разработчиков, позволяет скрыть бизнес-логику в серверном коде, ускорить загрузку сайта и улучшить защиту пользовательских данных, ограничив доступ к ним сторонних скриптов.

Давайте рассмотрим поближе, как это работает.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity