Search
Write a publication
Pull to refresh
22
0
Aleks Lozovyuk @aleks_raiden

Криптовалюты, финансы, распределенные системы

Send message

Что скрывается за EIP-712: подробный разбор стандарта

Level of difficultyMedium
Reading time15 min
Views648

EIP-712 — это стандарт, который делает подписи в Ethereum не только безопасными, но и человекочитаемыми. Он позволяет кошелькам показывать пользователю, что скрывается под подписью, состоящей из набора байт.

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

Читать далее

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

Level of difficultyEasy
Reading time20 min
Views4.8K

Настройка оповещений для различных метрик не всегда представляет из себя тривиальную задачу. В некоторых случаях может быть вполне достаточно простого порогового значения, например, для отслеживания свободного места на диске устройства. Вы можете просто установить оповещение о том, что осталось 10% свободного места, и все готово. То же самое касается и мониторинга доступной памяти на сервере.

Однако что делать, если необходимо отслеживать поведение пользователей на веб‑сайте? Представьте, что вы управляете интернет‑магазином, где продаете товары. Одним из подходов может быть установка минимального порога для ежедневных продаж и проверка его раз в день. Но что, если вам нужно выявить проблему гораздо раньше, в течение нескольких часов или даже минут? Статичный порог не позволит этого сделать, так как активность пользователей может меняться в течение дня. Именно здесь на помощь приходит обнаружение аномалий.

Читать далее

Как устроен CDN RUTUBE: железо, сеть, ПО

Reading time16 min
Views7.1K

Привет, Хабр! Меня зовут Дмитрий Иванов, я начальник отдела эксплуатации IT-инфраструктуры RUTUBE, что на наши деньги переводится как SRE-тимлид. В этой статье разберу задачу доставки контента и расскажу и решениях, которые помогают нам в RUTUBE. 

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

Требуется: показывать всем нашим пользователям видео из библиотеки быстро, надежно и эффективно.

Читать далее

Про обогреватели

Level of difficultyEasy
Reading time25 min
Views24K
Хватит! Хватит мёрзнуть и терпеть бредни копирайтеров про электрические отопительные приборы!

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

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

Как я создавал коллекцию фильмов

Level of difficultyMedium
Reading time9 min
Views2.6K

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

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

У моего друга детства Сашки был дома новый телевизор и видак, у моего друга детства Вовки дома был импортный телевизор и видак, у моего хорошего знакомого Димки был новый телевизор и видак. А у нас был старый советский черно-белый телевизор, который ловил две программы, в то время как всё самое интересное показывали по третьей. По финансовой причине то, что я увидел во сне, было для нас в то время недостижимой мечтой.

Мы ходили смотреть фильмы в основном к Сашке. Его старший брат где-то доставал кассеты с новинками, и всю классику 90-х я пересмотрел в первый раз именно у него дома. Зачастую в компании нас было 5 человек на сеансе просмотра какого-нибудь «От заката до рассвета» или «Смертельной битвы».

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

Прошло 27 лет. У меня появился дом в деревне с русской печкой, и в декабре 2024 года я создал коллекцию фильмов в высоком качестве. Только тогда всё сложилось, как во сне.

Лучше чем во сне.

Читать далее

Разгоняем Go TLS до 100 Gbps с сервера: опыт Kinescope

Reading time18 min
Views5.8K

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

Мы в Kinescope — те, кто эту магию делает. Видео, которое вы смотрите в интернете, вполне может идти через нашу инфраструктуру — пусть даже вы об этом не знаете. Под капотом у нас: высоконагруженные сервисы, сотни тысяч RPS, терабиты трафика и собственные технологии, написанные на Go.

О том, как мы проектируем и поддерживаем всё это, какие технические вызовы нам приходится решать, и почему HTTPS — это не просто галочка в чеклисте безопасности, — рассказываем в статье по мотивам доклада для GolangConf.

Привет, Хабр! Меня зовут Кирилл Шваков. В Kinescope мы разрабатываем B2B-решение для хранения, обработки, защиты и доставки видео через CDN. Среди наших клиентов — как небольшие стартапы, так и крупные компании. Помимо CDN, у нас, само собой, есть и собственный DNS. А главное, множество инфраструктурных самописных компонентов на Go, которые мы развиваем и поддерживаем внутри команды.

Читать далее

Сборка кастомного ISO образа Alpine Linux

Level of difficultyEasy
Reading time6 min
Views2.2K

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

Читать далее

Исчезновение Mindrock и Черкашина: как мог пропасть всемирно известный фонд?

Level of difficultyEasy
Reading time7 min
Views2K

Mindrock Capital –  амбициозный венчурный эксперимент, построенный, как заявлялось, на доверии, международных связях и вере в будущее технологий. Сотни миллионов долларов под управлением, яркие презентации в Кремниевой долине, имидж "человека-моста" для целого поколения стартаперов. Но внезапно этот фонд ушёл в тень — без скандалов, комментариев, без следа. Как могло случиться, что главная венчурная легенда последних лет растворилась буквально в один миг?

Читать далее

Разбираемся с суффиксами квантования LLM: что на самом деле значат Q4_K_M, Q6_K и Q8_0

Level of difficultyMedium
Reading time7 min
Views11K

Привет!
Задумывались, какую версию квантованной LLM выбрать: Q4_K_M, Q6_K или Q8_0? Насколько Q6_K хуже справляется с задачами по сравнению с Q8_0? И что вообще означают все эти буквы в суффиксах?

Примечание: это адаптированный перевод моей статьи на Medium. Перевод был сделан при помощи мозга, а не нейросетей или Google Translate.

Узнать чуть больше про квантование LLM

KubeVirt: глубокое погружение для администраторов VMware vSphere

Level of difficultyHard
Reading time28 min
Views5.8K

KubeVirt — это расширение для Kubernetes, которое позволяет запускать виртуальные машины внутри K8s-кластера. Именно эта технология, пусть и существенно доработанная, лежит в основе Deckhouse Virtualization Platform. Недавно наша команда встретила статью Дина Льюиса, которая отлично объясняет внутреннее устройство KubeVirt, принципы его работы и то, как они соотносятся с более привычными многим концепциями vSphere. Мы решили перевести её для сообщества. 

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

Читать далее

«Игра ли жизнь, если кубики поддельны?» • Эссе о реиграбельности в гейм-дизайне

Level of difficultyHard
Reading time35 min
Views2.4K

Знаете, есть такой старый анекдот про математика, который отказывается лететь на самолёте, потому что посчитал вероятность теракта. Друзья его уговаривают:

«Ну что ты, вероятность же ничтожно мала!»

А он отвечает:

«Да, но вероятность того, что на борту окажутся две бомбы, ещё на порядки меньше. Поэтому одну бомбу я всегда вожу с собой!»

Эта шутка, при всей её абсурдности, для меня стала каким-то странным отражением того, как мы, Гейм Дизайнеры, часто обращаемся со случайностью.

Читать далее

Почему при аутентификации в Linux пароль хуже ключа

Reading time15 min
Views16K

Привет, Хабр! На связи Кирилл, сисадмин в Selectel. Если вы только начинаете свой путь в системном администрировании, то наверняка задумывались, что происходит «под капотом» Linux при вводе логина и пароля. Давайте заглянем в потроха системы, чтобы: разобраться, как она удостоверяется в подлинности пользователя; сравнить привычные пароли и SSH-ключи; настроить сервер для безопасной работы. Добро пожаловать под кат.
Читать дальше →

5 техник, применяемых в анализе временных рядов, которые должен знать каждый. Часть 2

Level of difficultyEasy
Reading time15 min
Views5.9K

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

В этом разделе мы рассмотрим некоторые из наиболее эффективных методов.

Читать далее

Как сделать свое первое омничейн приложение на базе LayerZero v2? Часть 3. Параметры (options), особенности, PreCrime

Level of difficultyMedium
Reading time6 min
Views308

Это третья, финальная часть моего цикла про LayerZero v2. В первой части я разобрал, как развернуть простой OApp в Remix, во второй — показал, как сделать оминчейн приложение на примере OFT-токена. Теперь пришло время докрутить детали.

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

Читать далее

Как сделать свое первое омничейн приложение на базе LayerZero v2? Часть 2. OFT-токен

Level of difficultyMedium
Reading time19 min
Views526

В первой части мы разобрали, как развернуть простой OApp в Remix IDE. Пора переходить ко второй. Здесь познакомимся с ключевыми смарт-контрактами и напишем свой OFT (Omnichain Fungible Token). Это поможет на практике разобраться, как работает LayerZero, и понять, на что стоит обращать внимание при разработке омничейн-приложений.

Читать далее

Как мы накормили драконов (и заработали кучу золота)

Level of difficultyEasy
Reading time11 min
Views1.3K

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

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

Что делать, когда одна ферма больше не может прокормить всех? Как не дать городу сгореть от драконьего гнева? Зачем строить заморские колонии и создавать параллельные измерения?

За 10 лет наше королевство прошло путь от маленького города с одной фермой до федерации независимых государств, специализированных поселений и городов в параллельных мирах. И да, драконы всё ещё голодны.

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

Узнать, как накормить драконов

Дыра в щите Cloudflare: как атака на Jabber.ru вскрыла проблему, о которой молчат c 2023

Level of difficultyEasy
Reading time5 min
Views34K

Многие помнят позапрошлогодний инцидент с Man-in-the-Middle атакой на XMPP-сервис jabber.ru. Эта история наделала много шума, но, как мне кажется, главный вывод из неё так и не был усвоен широкой аудиторией. А зря. Потому что эта атака вскрыла системную уязвимость в процессе выдачи TLS сертификатов, которая напрямую касается миллионов сайтов, особенно тех, кто доверяет свою безопасность Cloudflare.

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

В кроличью нору

Делаем ИИ автоответчик в Telegram

Level of difficultyEasy
Reading time3 min
Views4.5K

Привет, Хабр! Хочу поделиться своим опытом создания бота, который может имитировать стиль общения любого пользователя Telegram. Проект AI Telegram Responder позволяет обучать модели на основе истории переписки и использовать их для автоматических ответов в определенных чатах.

Читать далее

От кнопки до продакшена: как мы делаем Telegram Mini Apps

Level of difficultyMedium
Reading time18 min
Views7.8K

Привет! Мы Дима и Илья, работаем в команде ТМА-разработки Doubletapp и расскажем, как создать Telegram Mini App на стеке React + Python.

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

В этом туториале мы разберем процесс создания Mini App:

настроим проект
создадим фронтенд на React с поддержкой Telegram SDK
реализуем бэкенд на Python (Django)
свяжем все компоненты и развернем приложение.

Читать далее

Тихая революция в интервальном запоминании информации

Level of difficultyEasy
Reading time9 min
Views21K

Что такое интервальные повторения

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

То же самое относится и к предметам в школе или вузе: нескольких часов в неделю в классе или домашний заданий редко хватает для наработки крепкой базы знаний, особенно в таких предметах с большим объёмом фактов, как история или медицина. Под этим углом можно рассматривать даже ту часть своей жизни, которую мы не считаем связанной с обучением: не казались ли все эти подкасты и статьи с Hacker News полезнее, если бы мы могли вечно помнить полученную из них информацию?

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

Читать далее

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity