Как стать автором
Поиск
Написать публикацию
Обновить
53
0.1

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

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

Как сделать любую поверхность сенсорной

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

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

Читать далее

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза

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

В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.

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

Читать далее

О векторном вычислении экспоненциальной функции

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

Как вычислить экспоненциальную функцию быстро и с минимальной погрешностью? Пишем векторизованный код.

Читать далее

Эффективное использование GPU в Kubernetes: Настройка и использование Volcano Scheduler + Volcano vGPU Device Plugin

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

В этой статье я расскажу, как можно разделить GPU на vGPU в кластере Kubernetes с поддержкой жесткой изоляции, используя Volcano и Volcano vGPU Device Plugin.

Читать далее

l9ec: волшебный патч ядра Linux

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

Если вам неудержимо хочется использовать оборудование из музея для современной разработки — статья специально для вас.

Читать далее

Multi-GPU Rendering для игр жив?

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

Всем привет. Я студент 2 курса магистратуры Университета ИТМО факультета «Школа разработки видеоигр». В своей выпускной работе «Анализ и разработка алгоритма Shadow Mapping направленных источников света для систем с несколькими GPU» я перенёс вычисление Cascaded Shadow Maps на вторую видеокарту и получил 40% прироста к производительности.

Читать далее

Триангуляция по косточкам

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

Всё началось невинно. Шёл 2009 год, и я просто хотел портировать Earcut на Flash - для своей мини-игры. Тогда это сработало, но с годами стало понятно: простые решения перестают работать, как только хочешь выжать из них максимум.

Триангулировать

Проксирование из коробки: сравнительный анализ HAProxy, Envoy, Nginx, Caddy и Traefik

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

Всем привет, меня зовут Стас, я техлид в Mish Product Lab.

Тема возникла не просто так: внутри команды у нас было немало споров и дискуссий о том, какой инструмент для проксирования и терминации SSL лучше использовать в различных ситуациях. Изначально все наши гипотезы были основаны больше на личных предпочтениях, чем на реальных данных. Мы долго спорили, надеясь, что истина будет где-то рядом с нашими любимыми решениями. Но в итоге пришли к выводу, что единственный способ получить действительно объективный ответ — это протестировать и сравнить различные варианты на практике.

Именно так родилась идея провести сравнительный анализ производительности HAProxy, Envoy, Nginx, Caddy и Traefik с поддержкой SSL/TLS. Мы хотели понять, какой из инструментов «из коробки» предоставляет наилучшую производительность и минимальные накладные расходы, особенно при обработке SSL-трафика, который, как известно, требует дополнительных ресурсов из-за шифрования и дешифрования.

Читать далее

5 способов нарисовать обводку

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

Рендеринг обводки (контуров) — это техника, часто используемая в играх или из эстетических, или из геймплейных соображений. Например, в игре Sable контуры применяются для создания стиля, напоминающего комиксы, а в The Last of Us контуры используются для выделения врагов, когда игрок переходит в режим скрытности.

В этом посте мы расскажем о пяти способах рендеринга контура вокруг объекта.

Читать далее

Хабр мёртв

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

Я сначала хотел написать это в комментарии к одной отвратительно написанной статье в корпоративном блоге с рейтингом +50, а потом понял что у меня получилась целая простыня текста. Конечно, хабр не жалобная книга, но это крик души о проблемах хабра и у меня есть надежда (пусть и слабая), что я хоть как-то смогу донести своё видение до администрации хабра и до пользователей.

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

Ищем дно и не находим

Фильтр Гаусса на стероидах: секреты ускорения вычислений

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

Привет, Хабр! Представьте, что вы пытаетесь обработать фотографию высокого разрешения на вашем смартфоне — добавить размытие, убрать шум или улучшить качество изображения. Кажется, задача проста, но за кулисами работает алгоритм, требующий немало вычислительных ресурсов. Речь идет о фильтре Гаусса – одной из самых популярных операций в области компьютерной обработки изображений.

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

Читать далее

«А теперь засунем X-сервер в контейнер»

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

Когда я писал про использование Докера как контейнера с инструментами для работы — вообще‑то речь шла про использование прежде всего доступа через шелл. Ну в самом деле: файлы они и в Африке файлы, редактирую я их Vim‑ом, потому что это удобно, перемещаю MidnightCommander‑ом, по той же причине, для обработки используются Makefile, и всё это окна терминалов.
Во множественном числе.

Читать далее

Герой нашего времени

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

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


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

Анонимный мессенджер — обязательный стандарт для каждого человека

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


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

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

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

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

Хороший ретрай, плохой ретрай, или История одного падения

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

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

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

Читать далее

Электросмачивание как интересный эффект для применения в самоделках и не только

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров10K
Картинка — youtube-канал GaudiLabs, University of Cincinnati, Etulipa, Image Sensors World

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

Сфера применения этого эффекта весьма широка и позволяет использовать его как профессиональных целей, так и для разнообразных самоделок.
Читать дальше →

Типизированные eDSL на Go

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

В статье показано, как реализовать встраиваемый типизированный DSL на Go. Рассматриваемое представление будет типобезопасным, т.е. не позволит сконструировать некорректные выражения (термы), но допускает разные интерпретации выражений. Система типов DSL один-к-одному маппится на систему типов Go, поэтому весь type-checking производится компилятором.

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

Читать далее

Распределенные транзакции для самых маленьких

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

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

Читать далее

Математика надёжности. Доклад Яндекса

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

Вадим Мартынов, руководитель команды платформы надёжности в Яндекс Go, в своём докладе рассказал, как влияют те или иные решения на надёжность системы и как это учитывать при разработке.

Читать далее

Управление личными делами в Obsidian (прототип)

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

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

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

Система будет адаптирована для телефонов.

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

Задачи и Obsidian? Звучит интересно!
1
23 ...

Информация

В рейтинге
3 229-й
Зарегистрирован
Активность