Search
Write a publication
Pull to refresh
120
0.2
Send message

Vulkan. Руководство разработчика. Текстурирование

Reading time18 min
Views6.8K


Привет! Я перевожу руководство Vulkan Tutorial на русский язык и выкладываю переводы на Хабр. Оригинал руководства можно найти здесь.

Сегодня я перехожу к новому разделу Текстурирование (Texture mapping). Первая глава раздела, переводом которой я собираюсь с вами поделиться, называется Images.

Содержание
Читать дальше →

О жидком металле замолвите слово. Мысли об аппаратной и программной реализации Т-1000

Reading time11 min
Views27K

Если вы — представитель моего поколения, и еще помните, что такое «ждать неделю, пока будет этот фильм по РТР» — то, вероятно, вас в детстве тоже интересовал вопрос «Как уничтожить Т-1000». Еще в школе друг сказал мне: «Тебе показали первого Терминатора, чтобы ты понял второго». Сейчас уже не могу сказать с уверенностью, но, наверное, именно терминатор Т-1000 впервые подтолкнул меня к мысли о том, что химия – это надстройка над физикой, а серебристые ковкие и плавкие металлы на самом деле очень разные. Но Т-1000, конечно, не просто жидкий металл. Он воплощает, как минимум, три технологических вектора, о которых мы и поговорим ниже: 1) создание миметических полисплавов («mimetic polyalloy»), 2) химические, электропроводные и теплопроводные свойства жидкого металла, 3) роевая робототехника в экстремально миниатюрном представлении. В этой статье (и, надеюсь, в комментариях тоже) мы постараемся не вдаваться в натяжки и сюжетные ходы франшизы, которая, все-таки, является художественным произведением, а не техническим заданием – и обсудим, какие технологии из проекта Т-1000 по капельке перетекают в реальность.

Читать далее

Публикация Android библиотеки

Reading time6 min
Views5.4K

Недавно у меня появилось желание попробовать создать свою собственную Android библиотеку и выложить ее на Maven Central репозиторий.

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

Я решил поделиться процессом публикации моей библиотеки Awesome-Buttons.

Ну что ж, приступим.

Читать далее

Синтезируем голос бабушки, дедушки и Ленина + новости нашего публичного синтеза

Reading time9 min
Views18K


На Хабре часто висят в топе: политика и очередные запреты, трактор, ну и конечно сенсационные новости про "очередные достижения AI". Также журналисты маркетологи любят перепечатывать нормальные статьи наподобие этой но под максимально кричащими заголовками в духе "AI поработит мир, ваш голос уже украли".


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


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


  • На реальных примерах показать возможности генерации голоса на малом числе данных или на данных с неидеальным качеством;
  • Немного порассуждать на тему цифровых памятников (это чем-то похоже на интерактивные или трехмерные фотографии), сделанных из голоса человека;
  • Также немного порассуждать на тему того, какую объективную опасность это представляет для общества;

И также мы конечно поделимся новостями нашего публичного синтеза речи.

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

Vulkan. Руководство разработчика. Пул дескрипторов и сеты дескрипторов

Reading time9 min
Views3.4K


Всем привет! Для тех, кто со мной не знаком, я — технический переводчик в IT-компании CG Tribe в Ижевске. Я занимаюсь переводом руководства Vulkan Tutorial на русский язык и выкладываю переводы на Хабр.

Я остановилась на разделе Uniform buffers и сегодня хочу поделиться переводом заключительной статьи раздела, которая называется Descriptor pool and sets.

Содержание
Читать дальше →

Vulkan. Руководство разработчика. Layout дескрипторов и буфер

Reading time10 min
Views4.9K


Добрый день! Я продолжаю выкладывать на Хабр переводы Vulkan Tutorial на русский язык (оригинал руководства можно посмотреть здесь).

Сегодня я перехожу к следующему разделу — Uniform buffers, и начну я с перевода статьи, которая называется Descriptor layout and buffer.

Содержание
Читать дальше →

Углубляем озеро в 100 раз

Reading time2 min
Views69K

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

Итак, дано: небольшое пресноводное озеро, не озеро даже – скорее огромная лужа, глубиной три с мелочью метра. Вопрос: как без смс и регистрации утопить там две буровые установки, одиннадцать(!) барж и буксир? Причём без читерства, типа штормов, ураганов и прочих бедствий? Интересно? Сейчас я вам всё расскажу.

Осенью далёкого 1980 года на озере Пенёр, что в штате Луизиана, компания Wilson Brothers Corporation искала нефть по заказу компании Texaco. На дворе конец ноября, погода ясная, установка исправная, буровики опытные — ну что может пойти не так? Поэтому, когда утром двадцатого бур заклинило на глубине трёхсот семидесяти метров, никто не мог и предположить, во что это в итоге выльется.

Читать далее

Vulkan. Руководство разработчика. Индексный буфер

Reading time5 min
Views2.3K


Я продолжаю выкладывать переводы тьюториала к Vulkan на русский язык (оригинальный текст тьюториала можно найти здесь). В сегодняшней публикации представлен перевод заключительной статьи раздела Vertex buffers, которая называется Index buffer.

Содержание
Читать дальше →

Заменяем глобальный аллокатор в Rust

Reading time11 min
Views8.3K

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


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

Vulkan. Руководство разработчика. Создание вершинного буфера

Reading time8 min
Views3.9K


Я работаю переводчиком в ижевской IT-компании CG Tribe и занимаюсь переводом Vulkan Tutorial на русский язык. Оригинал тьюториала можно найти здесь.

В своей прошлой публикации я начала перевод раздела Vertex buffers, и сегодня хочу представить перевод главы, посвященной созданию буфера — «Vertex buffer creation».

Содержание
Читать дальше →

Динамическая JIT компиляция С/С++ в LLVM с помощью Clang

Reading time10 min
Views10K


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

Из-за этого, я решил не откладывать перевод компилятора на использование LLVM, который планировался когда нибудь в будущем, а решил сделать это уже сейчас. И для этого нужно было научиться запускать компиляцию C++ кода с помощью библиотек Clang, но тут вылезло сразу несколько проблем.

Оказывается, интерфейс Clang меняется от версии к версии и все найденные мной примеры были старыми и не запускались в актуальной версии (Сlang 12), а стабильный C-style интерфейс предназначен для парсинга и анализа исходников и с помощью которого сгенерировать исполняемые файлы не получится*.

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

А теперь публикую результат своих изысканий в виде рабочего примера динамической компиляции С++ кода с последующей его загрузкой и выполнением скомпилированных функций. Исходники адаптированны под актуальную версию Clang 12. Пояснения к коду я перевел и дополнил перед публикацией, а ссылки на исходные материалы приведены в конце статьи.

  • *) Кажется в 14 версии планируется реализовать C интерфейс для генерации исполняемых файлов.
  • **) На самом деле, Clang может (или теперь может) компилировать файлы из оперативной памяти, поэтому в исходники я добавил и эту возможность.
Читать дальше →

Vulkan. Руководство разработчика. Вершинные буферы

Reading time6 min
Views3.9K


Я начинаю перевод нового раздела Vulkan Tutorial (vulkan-tutorial.com), который называется Vertex buffers. Сегодняшняя публикация посвящена первой главе раздела — Vertex input description.

Содержание
Читать дальше →

Как симулировать плохую сеть под Linux, macOS и Windows

Reading time3 min
Views26K

Clumsy 0.2

Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).

Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Читать дальше →

Vulkan. Руководство разработчика. Пересоздание swap chain

Reading time7 min
Views3.6K


Привет! Я технический переводчик из ижевской IT-компании CGTribe, и я продолжаю делиться с вами переводами уроков Vulkan Tutorial.

Эта публикация посвящена переводу главы Swap chain recreation — последней главы раздела Drawing a triangle. Оригинальную статью вы можете найти здесь.

Содержание
Читать дальше →

Жанр Zero Player Game или ZPG. Игры, которые играют сами в себя

Reading time9 min
Views25K

Привет друзья! Абсолютно каждый сталкивался с разными жанрами в играх не так ли? Рпг, шутеры или стратегии, у каждого из нас есть свои любимые жанры игр и те, которые мы терпеть не можем.

Я думаю у нас тут есть люди, которые пробовали не все жанры в видеоиграх и даже есть жанры, о существовании которых вы даже не догадывались. Вы когда-нибудь слышали про жанр ZPG ну или Zero Player Game? Вот и я не слышал до сегодняшнего момента, ну, а если кто-то и знает о нём, то снимаю пред вами шляпу.

Читать далее

Vulkan. Руководство разработчика. Рендеринг и отображение на экране

Reading time14 min
Views8.2K


Добрый день. Я занимаюсь переводом уроков к Vulkan API с английского языка на русский (ссылка на оригинальный тьюториал — vulkan-tutorial.com).

Сегодня я бы хотела поделиться с вами переводом заключительной главы в разделе Drawing — «Rendering and presentation».

Содержание
Читать дальше →

Создание игровых карт на основе диаграмм Вороного

Reading time6 min
Views10K
Я написал статью о генерации полигональных карт при помощи диаграмм Вороного, но не объяснил, как писать её код. В этой статье я расскажу об основах создания вот таких карт с примерами кода на Javascript:


Многие люди хотят самостоятельно писать шум Вороного и симплекс-шум. Я обычно пользуюсь библиотеками. Вот чем я буду пользоваться:

  1. симплекс-шум: jwagner/simplex-noise.
  2. Вороной: mapbox/delaunator.

Если вы не работаете с Javascript, то для большинства языков тоже существуют библиотеки шума, а Delaunator был портирован на многие языки.
Читать дальше →

Почему мы перешли с Oracle на PostgreSQL, и как это сделать

Reading time19 min
Views23K


Всем привет!


Сегодня расскажем о сравнительно новой для нас теме — про перевод приложения с Oracle на Postgres Pro (далее в тексте везде сокращу до PG). В общем смысле тема не столь уж нова — многие компании этим также занимаются или даже уже прошли этот путь. Так, например, на ежегодной конференции pgConf всегда есть несколько интересных докладов по этой теме (https://pgconf.ru/). Если говорить о формальностях, то мы реализуем инициативу согласно (Приказ Министерства связи «Об утверждении плана по импортозамещению программного обеспечения» от 01.02.2015 № 96). По факту — ещё и денег экономим, слезая с "лицензионной иглы". На эту тему можно отдельную статью написать, а в этой речь пойдёт о программной стороне вопроса. Кому интересно, добро пожаловать под кат.

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

Source Maps: быстро и понятно

Reading time5 min
Views58K


Механизм Source Maps используется для отображения исходных текстов программы на сгенерированные на их основе скрипты. Несмотря на то, что тема не нова и по ней уже написан ряд статей (например эта, эта и эта) некоторые аспекты все же нуждаются в прояснении. Представляемая статья представляет собой попытку упорядочить и систематизировать все, что известно по данной теме в краткой и доступной форме.
Читать дальше →

Vulkan. Руководство разработчика. Отрисовка

Reading time9 min
Views5.9K


Я занимаюсь техническими переводами в ижевской IT-компании CG Tribe и продолжаю публиковать перевод уроков Vulkan Tutorial на русский язык. Оригинальный текст руководства можно найти здесь.

Моя сегодняшняя публикация посвящена первым двум статьям раздела Drawing, — Framebuffers и Command buffers.

Содержание
Читать дальше →

Information

Rating
4,263-rd
Location
Магнитогорск, Челябинская обл., Россия
Registered
Activity