Pull to refresh
30
0

Web-разработчик, Android-разработчик

Send message

IPv6 или противостояние занижению скорости Youtube

Level of difficultyMedium
Reading time5 min
Views76K

Если Вы являетесь счастливым обладателем маршрутизатора Mikrotik и у Вас белый IP адрес, а также надоело занижение скорости Youtube, то статья для Вас. Добро пожаловать!

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

Читать далее
Total votes 65: ↑64 and ↓1+76
Comments93

Сериализация сущностей с помощью декораторов на TypeScript

Level of difficultyMedium
Reading time8 min
Views5.9K

В процессе написания приложения с более-менее сложной бизнес-логикой на фронтенде возникает необходимость держать всю эту логику на слое предметной области в "толстых" моделях. Например, для работы с формой, которая отображает на пользовательский интерфейс создание или редактирование сущности с большим количеством взаимозависимых свойств. Если "размазать" обработчики изменения состояния этой сущности и входящих в неё подсущностей по слою Application, легко можно потерять целостность модели в разных actions, reducers, валидаторах. Такой код будет трудно читать, отлаживать и поддерживать.

Можно использовать паттерн Aggregate Root для единой точки входа управления моделью, тогда упростится поддержка инварианта такой сущности. Методы доступа к свойствам и методы, меняющие состояние сущности, можно вызывать из одного объекта, а сам объект будет обеспечивать целостность и валидность своих данных. Но здесь появляется ещё одна проблема: сериализация. К примеру, бывает нужно сохранить всю сущность в каком-нибудь хранилище -- localStorage, redux store. Или отправить на бэкэнд для сохранения. Или событием обновить пользовательский интерфейс, а в payload события при этом надо передать часть сущности в виде простого плоского объекта. В этих случаях нам нужна выжимка данных из сущности, которую можно будет восстановить потом при запросе из хранилища для дальнейшей работы. Это особенно актуально, если на проекте используется SSR, там данные, которые собираются для страницы на серверной стороне, должны быть сериализуемыми.

Читать далее
Total votes 11: ↑10 and ↓1+12
Comments11

Решаем проблему блокировок (и YouTube) за 5 минут на роутере с OpenWRT

Level of difficultyEasy
Reading time5 min
Views121K

Будем возвращать доступ к YouTube (а заодно и к другим заблокированным ресурсам) с помощью роутера на OpenWRT и Shadowsocks (Outline) и клиента bird2 (сервиса Antifilter.download)

Читать далее
Total votes 45: ↑40 and ↓5+41
Comments115

Что умеет новая модель Claude 3.5 Sonnet?

Level of difficultyEasy
Reading time4 min
Views22K

Мы еще не отошли от GPT-4o, как Anthropic вырывается на сцену с новой моделью Claude 3.5 Sonnet, которая по заверениям разработчиков превосходит GPT-4o. Anthropic вновь раздвигает границы возможностей ИИ.

В этой статье мне бы хотелось оценить возможности новой модели и, конечно, проверить не соврали ли нам о функционале Claude 3.5 Sonnet.

Приятного прочтения(:

Читать далее
Total votes 18: ↑18 and ↓0+19
Comments40

Как понять, что сайт был загружен из кэша

Level of difficultyEasy
Reading time4 min
Views7.7K

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

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

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

К способам
Total votes 8: ↑6 and ↓2+9
Comments13

Магия CSS на практике: советы по вёрстке от гика. Часть 3

Level of difficultyMedium
Reading time6 min
Views9K


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


Сегодня мы рассмотрим:

  • подходы при стилизации элементов для вёрстки текста;
  • какая может быть проблема с радиокнопками в вашем проекте;
  • как задать размеры с использованием функций min() и max();
  • CSS-наследование и свойство line-height;
  • для чего делать подсказки в имени класса.

Давайте посмотрим, что я вам подготовил.

Читать дальше →
Total votes 30: ↑29 and ↓1+40
Comments18

Игрушечная телеметрия на Arduino

Level of difficultyMedium
Reading time11 min
Views12K

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

Читать далее, что из этого получилось
Total votes 32: ↑32 and ↓0+39
Comments15

Переход на iPhone 15 Pro Max после Android: Всё, о чём никто не предупреждал

Level of difficultyEasy
Reading time19 min
Views190K

Обзор iPhone 15 Pro Max начну с рассказа о том, как я решил приобрести этот смартфон. Решение о покупке iPhone 15 Pro Max пришло после долгих раздумий над выбором устройства на Android.

Читать далее
Total votes 77: ↑36 and ↓41+9
Comments510

Установка программы модификации сетевых пакетов NFQWS на роутер Keenetiс

Level of difficultyMedium
Reading time11 min
Views128K

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

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

Читать далее
Total votes 53: ↑53 and ↓0+62
Comments662

Как джамминг и спуфинг GPS мешают мирному населению

Level of difficultyEasy
Reading time7 min
Views30K

Региональная карта помех GPS на 5 августа 2024 года, источник

Давно известно, что сигнал GPS подвержен джаммингу (глушению) и спуфингу (подделке). Орбита спутников находится на высоте 20 180 км, так что сигнал на Земле легко заглушить. Но вот спуфинг считали слишком сложным и дорогостоящим.

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

К сожалению, помехи GPS распространяются далеко за пределы зон военных конфликтов, что влияет на повседневную жизнь простых людей в Москве и Санкт-Петербурге, Латвии, Эстонии, Финляндии, Беларуси, Турции и др. (на КДПВ).
Читать дальше →
Total votes 51: ↑46 and ↓5+54
Comments149

Открытый проект Wi-Fi Bluetooth микророутера

Level of difficultyHard
Reading time11 min
Views9.4K

Здесь представлено продолжение проекта на платформе S7V30 с использованием микроконтроллеров семейства Synergy. В прошлой статье был разработан bootloader с функциями криптозащиты прошивки и SD карты. В данном проекте мы расширяем функциональность нашего бутлодера  добавляя  в него криптозащищенные каналы связи по Wi-Fi и Bluetooth.  Стараемся не делать компромиссов между скоростью и функциональностью. Нам нужно устройство которое могло бы предоставлять услуги точки доступа по Wi-Fi, станции Wi-Fi, периферии Bluetooth LE и централи Bluetooth LE и все это одновременно. Кроме этого мы сделаем резервное подключение к интернету через USB и реализуем виртуальный COM порт через Bluetooth Classic. Сетевой стек должен работать в мульти интерфейсном режиме, то есть каждый из внутренних серверов (FTP, HTTP, Telnet и т.д.) доступен со всех подключенных IP интерфейсов. Управлять будем через минималистичный веб интерфейс с шифрованием TLS 1.3,  через него же и апгрейдить прошивку.

Читать далее
Total votes 14: ↑13 and ↓1+15
Comments5

Сетевые протоколы и модели OSI: как всё устроено

Level of difficultyEasy
Reading time11 min
Views13K

Как всё на самом деле работает в этом вашем TCP/IP и зачем ему столько уровней. Разбираем на простых примерах.

Пётр Емельянов — эксперт по информационным технологиям в Skillbox. Для комьюнити Skillbox Code Experts он провёл эфир о сетевых протоколах и моделях OSI или Open Systems Interconnection model. Речь про модель взаимодействия открытых систем, которая описывает, по каким правилам взаимодействуют разные устройства в компьютерных сетях. Основные мысли и объяснения из эфира Пётр рассказал в этой статье. До карьеры в машинном обучении Пётр около 10 лет проработал системным программистом в компании, которая специализировалась на анализе сетевого трафика. Занимался тарификацией и разводил потоки трафика. В статье Пётр рассмотрит, как появилась модель OSI, кому и зачем она нужна, какие у неё уровни и как ей пользоваться.

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments12

Pipelining & Composing: улучшаем читаемость кода. Реализация на TypeScript

Reading time4 min
Views3K

В статье мы рассмотрим, как можно значительно улучшить читаемость кода с помощью двух мощных техник: пайплайнинга (pipelining) и композиции функций (composing). Мы будем использовать TypeScript для демонстрации этих подходов.

Читать далее
Total votes 4: ↑3 and ↓1+5
Comments12

Любой может получить доступ к удалённым и приватным данным репозиториев GitHub

Level of difficultyMedium
Reading time6 min
Views49K

Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.

Это настолько огромный вектор атак для всех организаций, использующих GitHub, что мы решили ввести новый термин: Cross Fork Object Reference (CFOR). Уязвимость CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков). Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.

Давайте рассмотрим несколько примеров.
Читать дальше →
Total votes 114: ↑106 and ↓8+127
Comments42

Освоение любой темы с помощью искусственного интеллекта и метода Фейнмана

Level of difficultyEasy
Reading time5 min
Views58K

Когда в последний раз вы сталкивались с трудной для понимания темой? Или проводили часы за просмотром обучающих видео на YouTube?

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

В этой статье я расскажу, как эффективно применять метод Фейнмана и использовать искусственный интеллект для восполнения пробелов в знаниях.

По окончании чтения вы научитесь использовать ChatGPT для разбора сложных концепций и их интуитивного освоения всего за четыре простых шага.

Читать далее
Total votes 54: ↑42 and ↓12+38
Comments29

Атрибут charset и важность его использования

Level of difficultyEasy
Reading time9 min
Views7.2K

Какие предположения можно сделать относительно следующего HTTP ответа сервера?

Глядя на этот небольшой фрагмент HTTP ответа, можно предположить, что веб-приложение, вероятно, содержит уязвимость XSS.

Почему это возможно? Что обращает на себя внимание в этом ответе сервера?

Вы будете правы, если сомневаетесь насчет заголовка Content-Type. В нем есть незначительный недостаток - отсутствие атрибута charset.  Это может казаться неважным, однако, в этой статье мы объясним, как злоумышленники могут использовать этот недостаток для внедрения произвольного JavaScript кода на веб-сайт, сознательно изменяя набор символов, который ожидает браузер.

Читать далее
Total votes 26: ↑25 and ↓1+32
Comments6

Раскочегариваем YouTube без установки софта на конечные устройства

Level of difficultyMedium
Reading time3 min
Views200K

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

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

Для этого есть несколько путей:

Читать далее
Total votes 60: ↑50 and ↓10+53
Comments291

Ахиллесова пята ИИ: простая задача, обнажившая слабости всех языковых моделей

Level of difficultyEasy
Reading time5 min
Views57K

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

Читать далее
Total votes 80: ↑73 and ↓7+79
Comments303

Как подружить веб-компоненты и JS-фреймворки

Level of difficultyMedium
Reading time9 min
Views4.1K

Всем привет, я Роман Троицкий. Очень люблю веб-разработку; участвовал в проектах, попавших на Awwwards, Tagline и GoldenSite; помогаю организовывать митап Moscow CSS; участвовал в записи и разработке курса по фронтенду для Skillbox. На примере своего проекта я расскажу о сложившейся с Web Components ситуации, опишу их достоинства и недостатки. 

Читать далее
Total votes 20: ↑19 and ↓1+28
Comments7

Zerowriter Ink — для тех, кто много печатает. Что за девайс?

Reading time3 min
Views13K

Привет, Хабр! На связи Дарья Фролова, редактор направления спецпроектов в МТС Диджитал. Сегодня расскажу о девайсе, который может заинтересовать тех, кто работает с текстом.

Помните рассказ Стивена Кинга «Всемогущий текст-процессор»? Да-да, это там компьютер исполнял желания, набранные на клавиатуре. В реальном мире тоже появился текст-процессор, который выполняет желания. Точнее, одно: спокойно поработать с текстом без мессенджеров, YouTube и даже браузера — чистый писательский дзен, да и только. Разработал это устройство Адам Уилк — любитель DIY-электроники из Канады. Подробно о Zerowriter Ink рассказываю под катом.

Читать далее
Total votes 10: ↑10 and ↓0+17
Comments11

Information

Rating
Does not participate
Location
Рыбинск, Ярославская обл., Россия
Date of birth
Registered
Activity