Pull to refresh
34
0.1
ionicman @ionicman

User

Send message

Расширение возможностей веб-сервера при помощи WASM на примере Angie

Level of difficultyHard
Reading time19 min
Views2.9K

Наверное, не секрет, что одна из причин популярности nginx — это развитая экосистема сторонних модулей. Модули позволяют не просто настраивать какие-то детали обработки запроса, но и глубоко изменять поведение сервера.

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

Теперь в этот набор добавляется ещё и модуль WASM, который мы разработали для нашего веб-сервера Angie (здесь и далее ссылки на нашу документацию). Зачем понадобился WASM на сервере, чем нас не устраивают существующие методы расширения и что в итоге получилось?

Данная статья — транскрипт выступления Владимира Хомутова на конференции HighLoad++. Владимир с 2012 года разработчик nginx, а с 2022 разработчик Angie.

Читать далее

Скрываем без JavaScript элементы, требующие JavaScript

Reading time3 min
Views4.1K

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

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

Читать далее

CORS, CORP, COEP, COOP. Разбираемся со всеми CO* и смотрим на нюансы

Level of difficultyEasy
Reading time15 min
Views5K

В сети интернет достаточно информации на русском языке по поводу SOP и CORS, но введение в такие технологии как CORP, COEP и COOP показалось недостаточным (а кто-то может видеть эти аббревиатуры впервые). Поэтому решил написать статью по знакомству с cross-origin политиками.

Читать далее

Спарсил 700к ютуб каналов и построил 16 графиков которые вы навряд ли где-то видели

Level of difficultyEasy
Reading time5 min
Views13K

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

Но все же мне удалось нафармить 3,5к подписчиков мучительными душными видео, которые совершенно не понятно зачем терпели мои зрители

Теперь, я принял себя и нашел более подходящую площадку для своей духоты, поэтому представляю вашему вниманию несколько графиков про видео хостинг ютуб, который я парсил в течение 4 месяцев

Смотреть графики

Почему въехав по «визе талантов» в США я с радостью вернулся в Россию

Level of difficultyMedium
Reading time32 min
Views106K

Так получилось, что неожиданно для меня, в 2022-м году я оказался в США в статусе сотрудника американской компании. Но уже через полтора года я вернулся обратно в Россию. И не думаю, что когда-нибудь опять окажусь в США. Часто мелькают статьи о том, что пора переезжать в США и прочие страны. Однако правда такова, что существенное их количество пишут по заказу компаний, оказывающих услуги по оформлению документов. Много статей от только что покинувших свою страну молодых людей, которым просто не с чем сравнивать то, что они увидели в новой стране из-за отсутствия жизненного опыта. Часть статей написана людьми с весьма странными идеологическими установками. Ну и не исключаю, что часть статей — это откровенная пропаганда, написанная по заказу спецслужб стран, которые в них рекламируются. Поскольку у меня есть свой опыт жизни и работы за рубежом, я решил поделиться некоторыми наблюдениями в отношении «страны мечты» у нескольких поколений наших и не только сограждан. Возможно, кому-то мой, в целом позитивный, опыт поможет не наделать непоправимых ошибок. У меня же всё закончилось благополучно и я вернулся домой.

Читать далее

5 листингов для лучшего понимания Python

Level of difficultyEasy
Reading time13 min
Views17K

На протяжении нескольких лет я занимаюсь программированием на Python. За это время мне удалось собрать несколько занятных листингов кода. Какие-то из этих листингов я находил в литературе, посвященной Python, некоторые листинги я встречал на собеседованиях, а на какие-то натыкался во время выполнения рабочих задач. Однако все эти листинги объединяет одно: на мой взгляд они имеют неплохой образовательный потенциал и помогают лучше понять некоторые концепции Python. В этом посте привожу пятерку из моего списка листингов.

Читать далее

Что вам надо знать в 2025 году про контейнеры, чтобы не пропустить важное

Reading time12 min
Views19K
image

Контейнер — это типа виртуальной машины, только меньше и другое. Несколько контейнеров запускаются внутри одной машины и разделяются друг от друга.

Это значит, что можно запустить приложение с одним набором зависимостей, а рядом — второе с другим. Это значит, что можно сохранить все связки приложения, упаковать его в контейнер и деплоить где угодно — и знать, что оно точно запустится. Есть нюансы с переходом между ARM-архитектурой и x86, но в целом контейнеры универсальны.

В контейнерной упаковке огромное количество софта, в том числе очень много опенсорса. Можно поднять готовый контейнер с сервисом из хаба без проблем вообще. И это не создаёт сложных взаимозависимостей. Нужен PostgreSQL? Docker pull postgres — и он у вас.

К контейнерам монтируются свои ресурсы — диски, сети, конфиги и секреты.

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

Рои контейнеров могут масштабировать крупные корпоративные проекты, про это ниже.

И, наконец, никакой современный CI/CD почти не делается без контейнеров. Системным администраторам, DevOps-инженерам, разработчикам и СТО критически важно разобраться в контейнеризации.

Это будущее, и у этого будущего довольно странная кривая обучения. Сейчас коротко расскажу, попробуем разобраться, как её лучше проходить и где там грабли. Ну и ещё, если вы дойдёте до середины, ваша зарплата будет 450 тысяч рублей в месяц и выше.
Читать дальше →

Ваше мнение очень важно для нас (нет)

Reading time3 min
Views18K

Привет, Хабр! Меня по-прежнему зовут Александр, я всё ещё Linux-инженер с десятилетним стажем, завсегдатай Q&A и даже целый куратор парочки тэгов в нём. Но все эти сомнительные регалии в контексте данной статьи не важны и приведены тут ради красного словца, а обратиться к вам я хочу как (не совсем) обычный пользователь Хабра.

Дело в том, что месяц назад мне, не нарушившему ни одно из правил ресурса, выдали кармический shadow ban.

Какой ещё кармический shadow ban?!

Сможет ли AI создать идеального Шрека? Тестируем 3D-генераторы в поисках лучшего огра

Level of difficultyEasy
Reading time15 min
Views12K

В мире современных технологий 3D-модели стали незаменимым инструментом — их используют в кино, играх, дизайне, анимации и даже в промышленности. Они помогают создавать реалистичные объекты, персонажей и целые миры, которые мы видим на экране или в виртуальной реальности. Но что если процесс создания таких моделей может стать проще и быстрее? Сегодня, благодаря AI, любой может попробовать себя в роли 3D-дизайнера, не имея специальных навыков. Нейросети умеют генерировать различные объекты, просто опираясь на текстовый запрос.

Читать далее

Anti-detect Browsers — How They Work, Which Anti-detect Browser to Choose, Personal Experience, and a Bit of Code

Level of difficultyMedium
Reading time25 min
Views1.3K

Anti-detect browsers emerged as a response to the spread of browser fingerprinting technologies – the covert identification of users based on a combination of their device’s parameters and environment. Modern websites, besides using cookies, track IP addresses, geolocation, and dozens of browser characteristics (such as Canvas, WebGL, the list of fonts, User-Agent, etc.) to distinguish and link visitors. As a result, even when in incognito mode or after changing one’s IP, a user can be detected by their “digital fingerprint” – a unique set of properties of their browser.

In fact, when I first started my journey in these internet realms, my expertise in digital security was evolving—and continues to grow—and I eventually came to understand browser fingerprints. At first, I believed cookies—collected by those pesky search engines that tracked what I viewed—were to blame, then I learned about browser fingerprints and long denied that I needed to learn to work with and understand them. Really, just when you finally figure out proxies, learn how to change and preserve cookies, here comes a new twist. Moreover, it turns out that fingerprints are also sold, and the price is not exactly low. In short, money is made on everything! But that’s beside the point now!

An anti-detect browser is a modified browser (often based on Chromium or Firefox) that substitutes or masks these properties (fingerprints), preventing websites from unequivocally identifying the user and detecting multi-accounting.

Read more

Использование Proxy и Reflect для создания реактивных объектов в JavaScript

Level of difficultyEasy
Reading time10 min
Views2.5K

Привет, на связи снова Дмитрий, React-разработчик, и сегодня захотелось написать про Proxy и Reflect.

Что такое Proxy в JavaScript?

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

Читать далее

Вебсокеты на FastAPI: Реализация простого чата с комнатами за 20 минут

Reading time18 min
Views20K

Хотите освоить WebSocket и создать собственный чат с комнатами? В этой статье мы разберем:

В чем разница между WebSocket и классическим HTTP

Как реализовать сервер на FastAPI с поддержкой WebSocket

Как создать простой FullStack-чат для мгновенного обмена сообщениями

Как всего за пару минут развернуть готовое приложение на облачном сервисе

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

Читать далее

Компилятор за выходные: синтаксический анализатор Уорли

Level of difficultyMedium
Reading time11 min
Views5.8K

Изначально, когда я решил написать компилятор за выходные, я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY, довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend. Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.

Читать далее

Мой первый контейнер без Docker

Level of difficultyMedium
Reading time6 min
Views42K

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Угломеры разные нужны, разбираем до винтика. Часть 3

Level of difficultyMedium
Reading time4 min
Views2.2K

В предыдущих статьях мы уже рассмотрели несколько угломеров: в первой части речь шла о модели HW300, а во второй — о двух других устройствах. Чтобы не утомлять читателей, я решил объединить оставшиеся три угломера в одну статью. Все они абсолютно разные по конструкции, но каждый из них полностью функционален и показал достойные результаты при измерениях. Давайте разберём их внутреннее устройство по очереди.
Под катом много фото и текста

Код-послание из сериала «Черное зеркало: Захват голубя» расшифрован отечественным клоном ZX Spectrum 1992 года

Level of difficultyEasy
Reading time3 min
Views26K


Здравствуйте, дорогие друзья!

Вкратце, введу в курс дела. В сериале «Черное зеркало», есть серия «Захват голубя», иначе «Брандешмыг». Нас, любителей ретрокомпьютерной техники, эта серия может заинтересовать, не только видеорядом, но и присутствием настоящего компьютерного кода, включенного в сюжетную линию. Давайте не просто посмотрим серию, а загрузим фрагмент звуковой дорожки фильма, в ZX-Spectrum, с объемом ОЗУ 48к и посмотрим, что же там закодировано.

Под катом-детали исполнения. Добро пожаловать в «Брандешмыг»!
Читать дальше →

Операционная система в 1 000 строках кода (часть 5)

Level of difficultyMedium
Reading time21 min
Views7.7K

Это завершающая часть проекта по написанию собственно ОС. Здесь мы реализуем дисковый ввод/вывод и файловую систему, а также вкратце подведём итоги и наметим дальнейшие шаги на пути доработки системы.

▍ Навигация по частям


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

Памятка по XSD и XML

Level of difficultyEasy
Reading time11 min
Views17K

Самое главное стоит понимать, что XSD (XML Schema Definition) – это схема, то есть описание данных взаимодействия. Схемы бывают разные, например, наша XSD, которую обычно используют для описания структур в формате XML, или JSON-schema - для описания структур в формате JSON. Использование схем в контрактах API сейчас уже является стандартом де-факто, так как это удобно.

Основные объекты, из которых состоит XSD-схема:
- Элементы;
- Типы;
- Индикаторы порядка.

Читать далее

Information

Rating
6,153-rd
Registered
Activity