Как стать автором
Поиск
Написать публикацию
Обновить
144
0
Ярослав Сергиенко @pallada92

Визуализация данных и frontend в ИСИЭЗ НИУ ВШЭ

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

Разработка высоконагруженных API: проблемы, решения, практические рекомендации

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

Ваш проект взлетел. Первые пользователи превратились в тысячи. Тысячи стали десятками тысяч. Метрики в дашбордах рисуют красивую кривую, устремленную вверх. Но есть и другие кривые, которые ползут вверх с не меньшей скоростью. Время ответа сервера. Количество ошибок 502 и 504.

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

Читать далее

PEP-734: Субинтерпретаторы в Python 3.14

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

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом будет про: новые питоновские API для ускорение и паралеллизации ваших програм, про управление памятью, про дублирование данных. Ну и много C кода!

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

Если вам такое интересно или целиком незнакомо – добро пожаловать!

Читать далее

Рабочая точка биполярного транзистора

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

TL;DR: рассказываю и показываю на графиках, без формул, основу понятия рабочей точки биполярного транзистора. Используя интерактивную модель в веб-симуляторе электроники, соберу простой транзисторный предусилитель.

Читать далее

Puter.js: бесплатный бэкенд для сайтов, приложений и игр

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

В 2024 году после трёх лет разработки вышла первая версия Puter OS — «операционной системы для веба». Эта опенсорсная платформа по замыслу напоминает CasaOS, которую мы недавно рассматривали, но есть ряд отличий, и она гораздо интереснее.

Puter OS более ориентирована на разработчиков, предоставляя бэкенд, файловое хранилище, облачные вычисления и доступ к ИИ (GPT-4o, o1, o3, o4, Claude 3.7 Sonnet, Llama, Amazon Polly, and Dall-E) совершенно бесплатно для сторонних приложений и сайтов, если добавить туда библиотеку puter.js.

Конечным пользователям Puter OS предлагает единый интерфейс «операционной системы» с десятками тысяч веб-приложений на виртуальном «рабочем столе» (демо, КДПВ).

Читать далее

Steroids — ещё один фронтенд фреймворк на базе React?

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

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

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

Читать далее

Сотворение мира за 20 минут на JavaScript, или минималистичная модель эволюции

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

Впервые про моделирование эволюции я прочитал в 13 лет в статье «Жить и умереть в компьютере» (Техника — Молодежи, №5 1993 год). Она произвела на меня столь неизгладимое впечатление, что я тут же загорелся идеей создать что-то подобное.

Однако никак не удавалось проработать законы мира. Как организмы будут «смотреть» на окружающий мир? Как общаться? Как атаковать? Как кушать друг друга? Наконец, как будет устроен их «мозг»? Реализовать виртуальную машину, как в статье из журнала, или использовать что-нибудь проще, типа конечного автомата или схемы из блоков И-НЕ?

Короче, муки творчества да и, что уж там греха таить, ограниченные технические навыки, не позволили довести идею до ума. Я вернулся к ней уже в зрелом возрасте, лишенный юношеского максимализма и перфекционизма. Решил: раз сделать навороченную модель не получается, стоит начать с чего-то более простого. А лень и остатки перфекционизма в организме прошептали: с чего-то максимально простого.

Запустить эволюцию

Как использовать Cline и Roo Code в качестве AI-ассистента для кода?

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

Почти год назад мы рассмотрели подборку AI-ассистентов для кода, сегодня же мне хотелось бы сосредоточить внимание на одном конкретном, а именно — Cline, номер 1 на OpenRouter. Предлагаю вместе пробежаться по настройке и интеграции, а также использовании Cline в качестве ИИ-ассистента.

*А также мы поговорим про Roo Code — форке Cline, но совсем немного, поскольку они абсолютно идентичны в настройке и функционале.

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

Читать далее

Model Context Protocol (MCP) – универсальный протокол для взаимодействия с ИИ, и почему это замечательно

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

LLMки поражают своей сообразительностью, не так ли? Но стоит попросить их заглянуть в гуглодок/гитхаб/БД — и магия пропадает. Почему? ИИ живут в информационном вакууме, а каждая попытка подружить их со сторонними инструментами превращается в головную боль разработчиков и зоопарк костылей (помните анекдот про 15 стандартов зарядок?).

Давайте представим, как было бы замечательно, если бы был единый стандарт, как USB‑С, но для ИИ? Чтобы любой ассистент мог легко подключиться к любому инструменту? У меня есть хорошая новость: такой стандарт есть. Он называется Model Context Protocol (MCP), его создали Anthropic и поддерживают OpenAI и Microsoft.

Звучит сложно? Я тоже сначала ничего не понял, но разобрался и хочу рассказать вам понятно и интересно: Что такое MCP. С чем его едят. Как он устроен под капотом. И что с безопасностью.

Если вам тоже интересно, как ИИ наконец‑то выплывают из своего аквариума и начинают по‑настоящему помогать в работе — заглядывайте под кат! Я постарался разложить все по полочкам, с аналогиями и примерами.

Читать далее

Эти CSS-техники устарели

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


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


Общаясь с коллегами, я заметил, что они незнакомы с последними возможностями CSS. Как обычно, у всех свои причины. У кого-то много повседневной рутины. Кому-то в принципе неинтересно, что нового происходит в CSS. А кто-то по привычке использует подходы десятилетней давности и ему норм.


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


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

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

Что такое формальная верификация

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

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

Формальная верификация — это доказательство с использованием математических методов корректности программного обеспечения.

Формальная верификация молода. На сегодняшний день, на сайте хабр, например, нет (пока) специализации «Формальная верификация», нет специальности «Proof инженер» или «Специалист по формальной верификации». А люди, работающие по этой специальности — есть.

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

В основе формальной верификации лежат математические методы. Слово «формальный» в названии - это отсылка к математике. Для доказательства утверждений о программном коде используются формальные методы математики: математическая логика, лямбда исчисление, теория категорий, математический анализ, алгоритмы для работы с функциональными и императивными структурами данных.

Инструменты для верификации — это программные средства для доказательства теорем (Coq, Isabelle ...), а также SAT-solvers.

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

Читать далее

Зацените BUSY Bar — устройство для продуктивности

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

3 года назад я рассказывал как я делаю опенсорсную табличку "Я Занят". С тех пор проект полностью перешел внутрь Flipper Devices и его разрабатывает та же команда, что и Flipper Zero.

BUSY Bar — девайс для концентрации и современный Pomodoro-таймер с блокировкой отвлекающих приложений и уведомлений. Мы обновили дизайн устройства, доработали его функции и произвели первую тестовую партию. В этой статье я расскажу что мы сделали за это время и как изменился проект.

Читать далее

Создаём эмулятор легендарной игры «Ну, Погоди» на базе Raspberry Pi Pico

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


Многие из тех, кому сейчас за 30, и рождённых в СССР или на постсоветском пространстве, помнят электронную игру «Ну, погоди!». Во времена, когда не было ни интернета, ни ноутбуков, ни мобильных телефонов, а из общедоступных электронных развлечений были только аттракционы в парках культуры и видеосалоны, обладание бытовым компьютером, электронными наручными часами Montana или электронной игрой «Ну, погоди!» было мечтой многих детей.

Были ещё и другие электронные игры, но именно «Ну, погоди!» считается классикой.


Игре посвящено много ностальгических статей и видео. На различных торговых площадках можно купить её в различном состоянии от убитого до «с хранения» и даже новодел.


Лет 10 назад и я купил её в идеальном состоянии, поигрался, вспомнил детство и положил в ящик. Но несколько месяцев назад с разочарованием увидел, что «потекла» нижняя часть экрана.


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


Я не был одинок в своём желании воссоздать игру, этой теме посвящено также немало статей, но в них обычно создавали симуляторы, а не эмуляторы игры. Симулятор у меня ассоциируется с фразой: «Я художник, я так вижу», эмулятор — это более точное воспроизведение устройства.


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


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


Если вам интересно, как за несколько вечеров воссоздать у себя эмулятор «Ну, погоди!» на современном микроконтроллере или просто поностальгировать, добро пожаловать под кат.


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

Если вы не пишете программу, не используйте язык программирования

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


Лесли Лэмпорт — автор основополагающих работ в распределённых вычислениях, а ещё вы его можете знать по буквам La в слове LaTeX — «Lamport TeX». Это он впервые, ещё в 1979 году, ввёл понятие последовательной согласованности, а его статья «How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs» получила премию Дейкстры (точней, в 2000 году премия называлась по-старому: «PODC Influential Paper Award»). Про него есть статья в Википедии, где можно добыть ещё несколько интересных ссылок. Если вы в восторге от решения задач на happens-before или проблемы византийских генералов (BFT), то должны понимать, что за всем этим стоит Лэмпорт.


Эта хабрастатья — перевод доклада Лесли на Heidelberg Laureate Forum в 2018 году. В докладе пойдёт речь о формальных методах, применяемых в разработке сложных и критичных систем вроде космического зонда Rosetta или движков Amazon Web Services. Просмотр этого доклада является обязательным для посещения сессии вопросов и ответов, которую проведет Лесли на конференции Hydra — эта хабрастатья может сэкономить вам час времени на просмотр видео. На этом вступление закончено, мы передаём слово автору.




Когда-то давно Тони Хоар написал: «В каждой большой программе живет маленькая программа, которая пытается выбраться наружу». Я бы это перефразировал так: «В каждой большой программе живет алгоритм, который пытается выбраться наружу». Не знаю, правда, согласится ли с такой интерпретацией Тони.

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

Реверс-инжиниринг 128-битного дракона

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


КДПВ для этой статьи сгенерировала программа размером всего в 16 байт. Под катом разберёмся в том, как в столь скромном объёме сумел спрятаться дракон и какие силы поддерживают его жизнь. Для лучшего понимания происходящего мы портируем эту красоту на JavaScript.

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

Эстетика игр за доллар. История и философия сайта itch.io

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

Главная страница сайта itch.io.

Каждый год происходит более двадцати тысяч игровых релизов. Тем не менее складывается ощущение, что все они довольно-таки однообразны: шутер от первого лица, игра про зомби, survival horror, шутер про зомби с элементами хоррора, RPG, RPG, RPG… На слуху в основном игры от крупных издателей, на разработку и маркетинг которых тратятся огромные деньги. Но в этой статье я предлагаю взглянуть на бунтарей от мира геймдева и дистрибуции игр, которые решили пойти против системы. И, кажется, у них неплохо получается.
Читать дальше →

Звучащий код — пишем музыку на языке ByteBeat

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

Дорогой Хабр, через два месяца мне предстоит организовать и провести фестиваль компьютерного искусства, поэтому я уже сейчас собираю информацию про необычные проявления демосцены, на которые обычно никто не обращает внимания. Язык программирования для генеративной музыки ByteBeat — это как раз то, что я ищу.

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

Послушать пример из заглавной картинки: [sarpnt][greggman]

Читать далее

Сложно о простом. Как работает интернет. Часть 1. Что такое коммутатор, маршрутизатор и примеры работы простых сетей

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

Приветствую, коллеги! Меня зовут @ProstoKirReal. Мне бы хотелось с вами обсудить как работает интернет от кабелей на витой паре, соединяющие простые локальные сети до подводных коммуникационных кабелей соединяющие между собой континенты и основные операторские сети.

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

Читать далее

GraphRAG: Повышение точности и полноты GenAI

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

GraphRAG предоставляет «граф знаний» LLM. В отличие от текстовых документов, эти структуры данных четко отображают взаимосвязи между объектами.

Читать далее

Развенчиваем популярные мифы и заблуждения о компиляторах

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

▍ Введение


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

Эта статья станет своего рода продолжением статьи о компиляторных оптимизациях. Я перечислю некоторые заблуждения, с которыми я сталкивался за долгие годы (многие из них были моими), и постараюсь развеять все мифы. Заранее скажу, что эта статья посвящена только крупным популярным компиляторам общего назначения наподобие LLVM, GCC и ICX. Некоторые из сделанных здесь утверждений не относятся, например, к специализированным компиляторам2, а также к мелким и средним компиляторам3.
Читать дальше →

Профессиональная разработка на Brainfuck

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

Хотите довести до дурки любимого преподавателя компьютерных наук или навсегда прослыть «особенным» среди коллег сразу после (немедленного) увольнения?

Читайте про патентованный метод.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность